每个对象都有一个[[prototype]]
属性。默认情况下,它是全局 Object
构造函数的一个实例。
让我困惑的是这段代码:
var obj1 = {};
var obj2 = {};
console.log(obj1.__proto__ == obj2.__proto__); //true
这里 [[prototype]]
两个对象引用相同的 Object
实例。
我的问题是:JavaScript 是否有一个 Object
的保留实例,在我们没有指定 [[prototype]]
值的地方使用它?
最佳答案
By default its an instance of global Object constructor.
默认情况下,每个原型(prototype)链中的最后一个对象是Object.prototype
。它实际上不是 Object
的实例:
> Object.prototype instanceof Object
false
仅仅是因为 Object.prototype
本身没有原型(prototype)。
does JavaScript have a reserved instance of Object which is used wherever we haven't specified
[[prototype]]
value?
见上文。
关于javascript - JavaScript 中内部 [[prototype]] 属性的默认值是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30806022/