JS原型链怎么理解呢

2020-06-19 21:08发布

感觉原型链太难了,在网上查的,有一张图,真的看不懂呀,希望大佬们帮解惑

感觉原型链太难了,在网上查的,有一张图,真的看不懂呀,希望大佬们帮解惑

5条回答
王可夫斯基
2020-06-19 21:48

对于使用过基于类的语言 (如 Java 或 C++) 的开发人员来说,JavaScript 有点令人困惑,因为它是动态的,并且本身不提供一个 class 实现。(在 ES2015/ES6 中引入了 class 关键字,但那只是语法糖,JavaScript 仍然是基于原型的)。

当谈到继承时,JavaScript 只有一种结构:对象。每个实例对象( object )都有一个私有属性(称之为 __proto__ )指向它的构造函数的原型对象(prototype )。该原型对象也有一个自己的原型对象( __proto__ ) ,层层向上直到一个对象的原型对象为 null。根据定义,null 没有原型,并作为这个原型链中的最后一个环节。

几乎所有 JavaScript 中的对象都是位于原型链顶端的 Object 的实例。


一周热门 更多>