原型链是 JavaScript 实现继承的机制,通过 __proto__
一层一层向上查找属性和方法,直到找到或到达最顶层(null
)为止。
也就是研究实例、构造函数、原型三者的关系
每个构造函数都有一个原型对象(prototype
),原型对象有一个 constructor
属性指回构造函数。每个实例对象都有一个 __proto__
指向构造函数的原型对象。查找属性时会按这个链条向上查找,形成原型链。
console.log(Person===Person.prototype.constructor) // true console.log(person.__proto__ == Person.prototype) // true console.log(person.__proto__.constructor == Person) // true console.log(person.constructor == Person) // true