每个对象都有一个[[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]]
值的地方使用?往上看。