首页/文章/ JavaScript /JavaScript 的原型链/

JavaScript 的原型链

发布于 12-04 14:49

JavaScript 是一门面向对象的语言,也是一门函数式的语言。这是网景(Netscape)公司想要一种类似 Java 面向对象的语言,但 JavaScript 的作者 Brendan Eich 是个喜欢函数式语言的人,最终设计出的 JavaScript 是一门多范式语言。

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

当试图访问一个对象的属性时,它不仅仅在该对象上搜寻,还会搜寻该对象的原型,以及该对象的原型的原型,依次层层向上搜索,直到找到一个名字匹配的属性或到达原型链的末尾。