构造函数,实例,原型对象之间的关系和原型链(4)

看图
1.
在这里插入图片描述

2. 每个构造函数都有一个原型对象,通过构造函数prototype指向我们的原型对象.
3. 在原型对象里面有一个constructor属性,通过这个属性指回了构造函数
4. 我们可以通构造函数new一个zs对象实例出来
5. 在实例里面有一个__proto__,它指向的是我们构函数的原型对象.
6. 在实例里面有__proto__,而__proto__里面也有一个constructor属性,constructor属性指回的是我们的构造函数.所以我们的实例也可以指回我们的构造函数

原型链

在这里插入图片描述
可以看到,
对象实例的__proto__指向构造函数的原型对象prototype,
构造函数的原型对象prototype里面的__proto__指向Object的原型对象prototype,
而Object的原型对象prototype指向null,因为他是最顶层了

所以我们称这条链为原型链
说白了就是提供一条查找的线路,
首先看我们实例里面有没有这个成员,没有的话就一层一层的往上找,所以就有了我们的成员查找机制

JavaScript的成员查找机制

1. 访问一个对象的属性(包括方法)的时候,先查找对象自身有没有该属性.
2. 如果没有就查找它的原型(__proto__指向的)
3. 如果还是没有,就查找原型对象的原型(Object的原型对象)
4. 直到最顶层(null)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值