js系列二十八:原型链

本文介绍了JavaScript中的原型链概念,阐述了对象如何既是普通对象、实例对象又是构造函数,并探讨了constructor、prototype和__proto__属性的角色。通过instanceof关键字判断实例与构造函数关系,并详细解析了Object和Function在原型链中的位置。最后,解释了原型链上的方法访问原理,以及同名方法的访问优先级规则。
摘要由CSDN通过智能技术生成

原型链对象也是普通对象。
几乎所有对象都可以是普通对象,也可以是实例对象,还可以是构造函数,甚至是身兼多职。
当一个对象身兼多职时,他就可以被看作是原型链上的一个节点。因此理解了原型后,再来理解原型链的概念就简单多了。
当一个对象A作为原型时,他有一个constructor属性指向他的构造函数,即A.constructor,当一个对象作为构造函数时,他有一个prototype属性指向他的原型,即B.prototype。当一个对象C作为实例时,他有一个__proto__属性指向他的原型,即C.proto。当想要判断一个对象foo是否是构造函数 Foo 的实例时,可以使用 instanceof关键字,返回一个boolean值。

foo instanceof Foo // true foo是Foo的实例,false:不是

当创建一个对象时,可以使用new Object()来创建。因此Object其实是一个构造函数,而其实对应的原型 Object.prototype则是原型链的终点。

foo instanceof Foo
// true foo是 Foo的实例。false:不是,Object.prototype.__proto__ =
博客
v8worker
05-08 2890
05-06 2869
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值