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

看图

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

2. 每个构造函数都有一个原型对象,通过构造函数prototype指向我们的原型对象.

3. 在原型对象里面有一个constructor属性,通过这个属性指回了构造函数

4. 我们可以通构造函数new一个zs对象实例出来

5. 在实例里面有一个__proto__,它指向的是我们构函数的原型对象.

6. 在实例里面有__proto__,而__proto__里面也有一个constructor属性,constructor属性指回的是我们的构造函数.所以我们的实例也可以指回我们的构造函数

原型链

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

可以看到,
对象实例的__proto__指向构造函数的原型对象prototype,

构造函数的原型对象prototype里面的__proto__指向Object的原型对象prototype,

而Object的原型对象prototype指向null,因为他是最顶层了

所以我们称这条链为原型链

说白了就是提供一条查找的线路,

首先看我们实例里面有没有这个成员,没有的话就一层一层的往上找,所以就有了我们的成员查找机制

JavaScript的成员查找机制

1. 访问一个对象的属性(包括方法)的时候,先查找对象自身有没有该属性.

2. 如果没有就查找它的原型(__proto__指向的)

3. 如果还是没有,就查找原型对象的原型(Object的原型对象)

4. 直到最顶层(null)

以上是 【JS】构造函数,实例,原型对象之间的关系和原型链(4) 的全部内容, 来源链接: utcz.com/a/68461.html

回到顶部