JS原型链

什么是原型链

参考 MDN 继承与原型链 - JavaScript | MDN (mozilla.org)

JavaScript 只有一种结构:对象。每个对象(object)都有一个私有属性指向另一个名为原型(prototype)的对象。原型对象也有一个自己的原型,层层向上直到一个对象的原型为 null。根据定义,null 没有原型,并作为这个原型链(prototype chain)中的最后一个环节。可以改变原型链中的任何成员,甚至可以在运行时换出原型

举例:

let a = []
a.__proto__ === Array.prototype // true
Array.prototype.__proto__ === Object.prototype //true
Object.prototype.__proto__ === null //true

上面xxx.__proto__ 在浏览器中用来表示 xxx的原型对象
遵循 ECMAScript 标准,应该用符号xxx.[[Prototype]] 来表示 xxx 的原型,在浏览器中打印xxx.[[Prototype]] 会报错,Object.getPrototypeOf()可以获得对象的原型对象,上面的例子 可以这样表示

Object.getPrototypeOf(a) === Array.prototype //true
Object.getPrototypeOf(Array.prototype) === Object.prototype //true
Object.getPrototypeOf(Object.prototype) === null //true

如何修改原型

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容