javascript - 了解原型(prototype)继承

标签 javascript object inheritance prototypal

var Object1 = {};
var Object2 = new Object();
var Object3 = Object.create({});

当我检查原型(prototype)是否等于Object.prototype时:

前两个返回 true 而第三个返回 false

为什么会这样?

Object.getPrototypeOf(Object1)===Object.prototype //true
Object.getPrototypeOf(Object2)===Object.prototype //true
Object.getPrototypeOf(Object3)===Object.prototype //false

最佳答案

只是因为如果你看一下 Object.create()在文档中,您将使用此方法:

creates a new object with the specified prototype object and properties.

如果你调用它:

Object.create({})

您传递的不是原型(prototype),而是一个没有属性的空对象。

所以正如评论中所述,您需要这样调用它:

Object.create(Object.prototype)

关于javascript - 了解原型(prototype)继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31557631/

相关文章:

java - 链接列表对象不存储字符串输入,这会导致链接列表为空

javascript - 如何仅使用所需的键从另一个对象获取对象?

Java 实例变量可访问性

javascript - 使用 JavaScript 在 Flash 中模拟鼠标点击

javascript - 将数组内的数组转换为平均值

javascript - react 按钮事件样式

java - 在 Java 中创建自定义集合

javascript - 在 Jquery 中的图像点击事件上更改图像

javascript - 对象与数组 : Is there a clear winner when storing collections of objects in state?

javascript - 在 Javascript 中使用带有 "apply"的局部变量