JS 原型与原型链的核心机制是什么?


首先,访问一个实例的属性时,JS 会先查找实例自身。如果找不到,就沿着实例的内部原型,找到它的原型对象。也就是函数的 prototype。它为多个实例提供共享的属性和方法。

如果在这个原型对象上仍然找不到,就沿着这个原型对象自身的内部原型,找到更上一层的原型对象。直到查到 Object.prototype,而它的内部原型是 null,至此如果还没找到该属性,就返回 undefined。

所以,原型链可以理解为:从实例开始,不断用内部原型递归查找原型对象的过程。