18--26 面向对象程序设计20(属性是否在对象(和原型对象)中)
来源:互联网 发布:windows http 编辑:程序博客网 时间:2024/05/02 06:14
转载请注明出处:http://blog.csdn.net/u011569040/article/details/50779068
ECMA5: Object.getPrototypeOf():根据实例对象获得原型对象
// isPrototypeOf(new instance); 判断原型的方法// ECMA5: Object.getPrototypeOf():根据实例对象获得原型对象function Person(){}Person.prototype.name = 'z3'; Person.prototype.age = 20 ; Person.prototype.sayName = function(){alert('我是原型对象的方法!')}; var p1 = new Person();alert(p1.name); // z3 var prototypeObj = Object.getPrototypeOf(p1);alert(prototypeObj == Person.prototype);/* 每次代码读取一个对象的属性的时候: 首先会进行一次搜索:搜索实例对象里name的属性,看看有没有 * 如果没有,再去p2的实例所对应的原型对象里去搜索name属性 如果有就返回 没有返回undefined */var p2 = new Person();p2.name = 'w5';// 实例对象的namedelete p2.name ; alert(p2.name);// 就想获得原型对象的name属性
hasOwnProperty
// 判断一个对象属性 是属于原型属性 还是属于实例属性//用hasOwnPropertyvar p3 = new Person();p3.name = 'z6';//如果没有这一行,则用hasOwnProperty判断是false,因为name是原型的属性不是实例的alert(p3.hasOwnProperty('name'));
in操作符
//in 操作符 : for-in // in 操作符 判断属性是否存在于 实例对象和原型对象中var p1 = new Person();alert('name' in p1); // truevar p2 = new Person();p2.name = 'w3';alert('name' in p2); // true
hasOwnProperty和in合起来用,判断一个属性 是否存在原型中
// 就是判断一个属性 是否存在原型中// 在原型对象中 是否存在这个属性 第一个参数:当前对象 ,第二个参数:要判断的属性function hasPrototypeProperty(object , name){return !object.hasOwnProperty(name) && name in object ;}var p3 = new Person();p3.name = 'xiao A';alert(hasPrototypeProperty(p3,'name'));
Object.keys(),得到当前对象的所有属性
// ECMA5新特性 Object.keys();// 拿到当前对象里的所有keys 返回一个数组var p1 = new Person();p1.name = 'z3';p1.age = 20 ; var attributes = Object.keys(p1);//alert(attributes);var attributes2 = Object.keys(Person.prototype);//alert(attributes2);
上述方法对constructor这样的不能被枚举的属性是不能列出,但
Object.getOwnPropertyNames 枚举对象所有的属性 :不管该内部属性能否被枚举
// ECMA5 constructor属性: 该属性是不能被枚举的[eable = false]// Object.getOwnPropertyNames 枚举对象所有的属性 :不管该内部属性能否被枚举var attributes3 = Object.getOwnPropertyNames(Person.prototype);alert(attributes3);
0 0
- 18--26 面向对象程序设计20(属性是否在对象(和原型对象)中)
- 面向对象(原型)
- javascript面向对象(七)原型另外的作用--扩充对象的属性和方法
- 18--26 面向对象程序设计22(创建一个原生的原型)
- 18--26 面向对象程序设计23(开发时所用的原型)
- 18--26 面向对象程序设计24(深入解析原型继承的概念)
- javascript面向对象——prototype属性(原型属性)
- 面向对象的程序设计-原型模式(案例:下拉菜单)
- javascript中面向对象中对象,属性,原型链和一些扩展知识总结
- js中的面向对象程序设计(1)-对象和属性的类型
- 20-JavaScript-面向对象-类(原型对象) 和 对象(实例)
- JavaScript面向对象的程序设计2(组合构造和原型 继承)
- 面向对象程序设计上机练习六(类和对象)
- 面向对象程序设计上机练习七(类和对象)
- 面向对象程序设计上机练习七(类和对象)
- 面向对象程序设计上机练习六(类和对象)
- 面向对象程序设计上机练习五(类和对象)
- 面向对象程序设计上机练习六(类和对象)
- python 面向对象高级编程
- 项目经理之提高会议效率
- Fragment更容易实现页面的切换
- navicat导出sql语句失败
- 17. Letter Combinations of a Phone Number
- 18--26 面向对象程序设计20(属性是否在对象(和原型对象)中)
- 用python实现BP神经网络
- FlycoTabLayout使用
- http get请求
- 升级安卓6.0.1后wifi出现的已连接 但无法访问互联网的问题
- app测试总结(工具篇之fiddler)
- Android的XML文件解析之PULL解析
- 幸运数(向量Vector类练习)
- JSPatch 常见问题