原型与操作符
来源:互联网 发布:各地区区号知乎 编辑:程序博客网 时间:2024/05/29 03:15
//Object.getPrototypeOf(person1);//取的person1对象的原型 // Person.prototype.isPrototypeOf(person1);//判断person1的__proto__是否指向Person.prototype(即person1的原型) person1.hasOwnProperty("name")//hasOwnProperty()检测一个属性是存在于原型中还是存在于实例中,给定属性存在于对象实例中时才会返回true delete person1.name;//可以删除实例属性,此时person1的name属性只能从原型中搜到 "name" in person1//如论从原型中获的,还是实例属性中获的,只要存在name属性,都会返回true,因此可以使用in和hasOwnProperty()来判断属性存在于原型中还是实例中 function hasOwnProperty(obj,name){ return !obj.hasOwnProperty(name) && (name in obj);//只要(name in obj)返回true,函数返回true时,属性存在于原型中;函数返回false,属性存在于实例中 } // 在使用for-in循环时,返回的是所有能够通过对象访问的、可枚举的属性,其中既包括存在于实例中的属性,也包括存在于原型中的属性。 //屏蔽了原型中不可枚举属性(即将[[ Enumerable ]]标记为false的属性)的实例属性也会在for-in循环中返回,因为根据规定,所有开发人员定义的属性都是可枚举的--只有在IE8以及更早版本中例外 var o = { toString: function () { return "My Object"; } } for(var pro in o){ if(pro == "toString"){ alert("Found toString");//在IE中不会显示 } } //要取的对象上所有可枚举的实例属性,可以使用es5中的Object.keys()方法。接收一个对象作为参数,返回一个包含所有可枚举属性的字符串数组。 function Person(){ } Person.prototype.age = 20; Person.prototype.name = "DZZ"; Person.prototype.sayName = function () { alert(this.name); }; var keys = Object.keys(Person.prototype);//参数为原型对象 alert(keys);//age,name,sayName var p1 = new Person(); p1.name = "YBB"; p1.age = 24; var p1keys = Object.keys(p1);//参数为实例对象 alert(p1keys);//name,age //Object.getOwnPropertyNames()//得到所有的实例属性,无论它是否枚举 var keys = Object.getOwnPropertyNames(Person.prototype); alert(keys);//constructor,age,name,sayName
阅读全文
1 0
- 原型与操作符
- js对象原型与in操作符
- 原型与原型链
- 原型与原型链
- 原型与原型链
- 原型与原型链
- 原型与原型链
- 原型与原型链
- 原型与原型链
- 原型与原型链接
- 原型与原型链
- Javascript——面向对象与原型(操作指南)
- javascript原型与原型链
- JS 原型与原型链
- JavaScript原型与原型链
- 原型对象与原型链
- js原型与原型链
- JS原型与原型链
- 数学归纳法证明时间复杂度
- 8css定位
- 2017 Multi-University Training Contest 1 solutions BY 北京航空航天大学(1)
- 如何将一个精灵转换成纹理保存到本地
- 【Nova】nova-compute代码学习2-状态机
- 原型与操作符
- 【bzoj3357】[Usaco2004]等差数列
- 浅谈分布式消息技术 Kafka
- 高效使用Eclipse开发微服务-注册中心(二)
- ACboy needs your help again!(栈和队列)
- 1008. Elevator (20)
- Git常用命令
- 同一端口如何区分不同的Socket
- 曾鸣:未来五年_一个新的商业模式将诞生 | 干货