原型模式相关的方法

  • isPrototypeOf 方法

原型对象的isPrototypeOf 方法,判断实例是否有指向Person.prototype的[[prototype]]

alert(Person.prototype.isPrototypeOf (person1));   //true

  • Object.getPrototypeOf() 方法

ES5新增方法Object.getPrototypeOf(),返回[[prototype]]的值

alert(Object.getPrototypeOf(person1) == Person.prototype);   //true

多个对象实例共享原型所保存的属性和方法的基本原理:

代码读取某个对象的某个属性时,都会执行一次搜索,目标是具有给定名字的属性。搜索首先从对象实例本身开始。如果在实例中找到,则返回该属性的值;如果没有找到,则继续搜索指针指向的原型对象,在原型对象中查找具有给定名字的属性,如果找到则返回该属性的值;

注意点:通过对象实例可以访问原型中的值,但却不能通过对象实例重写原型中的值。

  • hasOwnProperty()方法

hasOwnProperty()方法可以检测一个属性存在于实例还是原型中,给定属性存在于实例中才返回true

  • in操作符

in操作符会在通过对象能够访问给定属性时返回true

  • for-in循环

for-in循环返回的是能够通过对象访问的、可枚举的属性

  • Object.keys()方法

Object.keys()接收一个对象作为参数,返回一个包含所有可枚举属性的字符串数组。

  • Object.getOwnPropertyNames()方法

Object.getOwnPropertyNames()方法,返回所有实例属性,无论它是否可枚举。

constructor属性:不可枚举

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值