谈谈原型链是什么

61 阅读1分钟

原型链涉及到的概念挺多的,这让我来举例说明下

例如有一个普通对象x={},那x会有一个隐藏属性__proto__,它指向Object.prototype

x.__proto__ === Object.prototype \原型

此时,可以说 x 的原型是 Object.prototype ,或者说 Object.prototype 是 x 的原型

x 隐藏属性__proto__ 指向 x 的原型

如果没有这个隐藏属性的话,那就不知道 x 的原型是谁了

接下来说原型链,也来举例说明下

假设有个数组 a=[] ,那 x 会有一个隐藏属性__proto__,它指向Array.prototype

a.__proto__ === Array.prototype

同时Array.prototype也有一个隐藏属性__proto__,它指向 Object.prototype

Array.proto === Object.prototype

这样一来就有了俩层原型

a 的原型是 Array.prototype

a原型的原型是 Object.prototype

即 a ===> Array.prototype ===> Object.prototype

这就是我对原型链的回答