我创建了一个普通的JS对象
var person1 = {
name:"ABCD"
}
然后创建另一个对象person2作为
var person2 = Object.create(person1)
现在当我键入内容时,在浏览器控制台中
person1-它给了我对象的定义。 但是,当我键入person2时-尽管person2.name返回ABCD,但会打印一个空对象(即{})。
任何关于这里发生的事情的想法。
答案 0 :(得分: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);