Javascript 对象没有';t继承属性和值
我定义了一个对象,当我实例化它时,该实例不包含父对象的属性和值Javascript 对象没有';t继承属性和值,javascript,Javascript,我定义了一个对象,当我实例化它时,该实例不包含父对象的属性和值 const myObject = { myNumbers: [7,32,51,2,0,9], myName: "John", myLastName: undefined, age: 26 }; const objectInstance = Object.create(myObject); console.log(myObject); //{myNumbers:
const myObject = {
myNumbers: [7,32,51,2,0,9],
myName: "John",
myLastName: undefined,
age: 26
};
const objectInstance = Object.create(myObject);
console.log(myObject); //{myNumbers: Array(6), myName: "John", myLastName: undefined, age: 26}
console.log(objectInstance); //{}
objectInstance记录一个空对象。我希望看到日志窗口中显示的所有属性和值。哪里出错了?当您
console.log
一个对象时,它只显示该对象自己的属性。但是,如果要查看继承的属性,可以在控制台中展开\uuuu proto\uuu
属性
尝试记录:
console.log(myObject);//{myNumbers:Array(6),myName:“John”,myLastName:未定义,年龄:26}
console.log(objectInstance);//{}
console.log(Object.getPrototypeOf(objectInstance));//{myNumbers:Array(6),myName:“John”,myLastName:未定义,年龄:26}
console.log通常只显示自己可枚举属性的子集。当然。你在使用什么开发工具?在Firefox中,您只需单击箭头即可展开对象,并显示:Object{myNumbers:(6)[…],myName:“John”,age:26,…}
。Chrome显示了一个\uuuuuu proto\uuuuuuu
,它进一步扩展为继承属性的多行列表。我使用VS代码作为编辑器(带有LiveServer插件),使用Firefox 83.0作为浏览器。我可以看到我假设对象为空的原型值,因为它显示为{},而不是在别处显示继承的属性。不推荐使用。现代的替代品是console.dir
是更好的选择。正如目前在主要浏览器中实现的那样,console.log
,更具体地说,它显示了自己的可枚举属性的子集。谢谢。用Object.getPrototypeOf
更新了答案,而不是\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu