javascript - JavaScript 中内部 [[prototype]] 属性的默认值是多少?

标签 javascript oop

每个对象都有一个[[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/

相关文章:

javascript - 防止 makefile 重新编译源文件

javascript - 将对象分配给 "this"

python - 为什么这个类变量在不同的实例中是相同的?

javascript - AngularJS 中的循环依赖和 OOP 问题

php - Laravel 4 - 在其他 Controller 中使用 Controller Action ?

javascript - Web应用程序是否可能存在松耦合?

javascript - 更改输入 javascript 的标签

Javascript 多个函数与更大的函数

javascript - 在grails 3.2.8中将参数从gsp传递到内部模板gsp

java - 如果单例很糟糕,那么如何存储框架的全局状态