每个对象都有一个[[prototype]]属性。默认情况下,它是全局Object构造函数的实例。

令我困惑的是这段代码:

var obj1 = {};
var obj2 = {};

console.log(obj1.__proto__ == obj2.__proto__); //true


在这里,两个对象的[[prototype]]引用Object的相同实例。

我的问题是:JavaScript是否具有Object的预留实例,该实例在没有指定[[prototype]]值的地方使用?

最佳答案

默认情况下,它是全局Object构造函数的实例。


默认情况下,每个原型链中的最后一个对象是Object.prototype。它实际上不是Object的实例:

> Object.prototype instanceof Object
false


仅仅是因为Object.prototype本身没有原型。


  JavaScript是否具有Object的保留实例,该实例在没有指定[[prototype]]值的地方使用?


往上看。

09-11 19:52
查看更多