Skip to content

输出什么?

Posted on:2021年7月3日 at 22:35
const animals = {};
let dog = { emoji: "🐶" };
let cat = { emoji: "🐈" };

animals[dog] = { ...dog, name: "Mara" };
animals[cat] = { ...cat, name: "Sara" };

console.log(animals[dog]);

对象的键会被转换为字符串。 因为 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" }

原文转自:https://fe.ecool.fun/topic/321642db-58ca-47ab-9d2a-9cebc24a9bb1