1const animals = {}; 2let dog = { emoji: '🐶' } 3let cat = { emoji: '🐈' } 4 5animals[dog] = { ...dog, name: "Mara" } 6animals[cat] = { ...cat, name: "Sara" } 7 8console.log(animals[dog])
本题为“单选题”
参考答案:
正确选项:B:{ emoji: "🐈", name: "Sara" }
对象的键会被转换为字符串。
因为 dog
的值是一个对象, animals[dog]
实际上意味着我们创建了一个叫做 "object Object"
的属性来代表新的对象。 animals["object Object"]
现在等于 { emoji: "🐶", name: "Mara"}
。
cat
也是一个对象,animals[cat]
实际上意味着我们在用新的cat的属性覆盖 animals[``"``object Object``"``]
的值。
打印 animals[dog]
,实际上是animals["object Object"]
,这是因为转化dog
对象为一个字符串结果 "object Object"
,所以返回 { emoji: "🐈", name: "Sara" }
。
最近更新时间:2021-07-03