【发布时间】:2021-11-29 09:43:28
【问题描述】:
我们知道
let obj1 = {};
obj1.x = "value";
let obj2 = {"key":"value"};
obj2[obj1] = "another value";
console.log(obj2[obj1]);
上面将在控制台上正确打印“另一个值”。需要了解如何。它是否存储了 obj1 的地址以供 key 与 value 匹配?
【问题讨论】:
-
“需要了解如何。” - 然后做一个
console.log(obj2);,看看这是否有助于理解。 -
这种方式的赋值只会在创建键“[object Object]”时调用String(obj1)
-
对象键是字符串或
Symbol并且任何不是符号(如您的情况)都将转换为字符串,因此您可以通过执行以下操作进行检查:console.log(obj2[obj1.toString()]);这将给出你的确切结果为console.log(obj2[obj1]);
标签: javascript