所有普通的对象用内建的 Object.prototype
作为原形链的顶端(就像作用域查询的顶端是全局作用域),如果属性没能在链条的前面任何地方找到,属性解析就会在这里停止。,valueOf()
,和其他几种共同工具都存在于这个 Object.prototype
对象上,这解释了语言中所有的对象是如何能够访问他们的。
那个用 new
调用的函数有一个被随便地命名为 .prototype
的属性,这个属性所引用的对象恰好就是这个新对象链接到的“另一个对象”。带有 的函数调用通常被称为“构造器”,尽管实际上它们并没有像传统的面向类语言那样初始化一个类。
由于各种原因,不光是前面提到的术语,“继承”(和“原型继承”)与所有其他的 OO 用语,在考虑 JavaScript 实际如何工作时都没有道理。