0

我创建了一个普通的 JS 对象

var person1 = {
name:"ABCD"
}

然后创建另一个对象 person2 为

var person2 = Object.create(person1)

现在在我输入时在浏览器控制台中

person1 - 它给了我对象定义。但是当我键入 person2 时 - 尽管 person2.name 返回 ABCD,但会打印一个空对象(即 {})。

关于这里发生的事情的任何想法。

4

1 回答 1

2

person2是空的,因为您从未分配过它的任何属性;在控制台中,您必须扩展__proto__属性以获取对象的原型,以查看它继承自什么。

在此处输入图像描述

在脚本中(而不是在控制台中)键入代码时,尽管您可以使用它__proto__来访问原型:

var person1 = {
  name:"ABCD"
};
var person2 = Object.create(person1);

console.log(person2.__proto__ === person1);

它已被弃用,最好使用Object.getPrototypeOf

var person1 = {
  name:"ABCD"
};
var person2 = Object.create(person1);

console.log(Object.getPrototypeOf(person2) === person1);

于 2019-01-20T08:51:00.747 回答