javascript - 我们可以使用对象作为Javascript中对象的键吗?

标签 javascript arrays object variables data-structures

在一次采访中,我得到了一段简短的 JavaScript 代码来给出其输出,但我不确定其输出是什么。他创建了一个 var 对象,并使用数组数据结构将对象分配为该对象的索引。我在面试后确实控制台了该代码,但仍然不明白它是如何显示输出的。

这是代码

var a = {};
b = { key: 'b'};
c = { key: 'c'};
a[b] = 123;
a[c] = 456;

console.log(a[b]); //what is the output of this console statement and explain why

任何人都可以解释它显示的输出背后的 JavaScript 逻辑吗? 提前致谢!

最佳答案

用作key的toString的对象是[object Object],这就是每次使用的对象

var a = {};
b = { key: 'b'};
c = { key: 'c'};
a[b] = 123; // sets a["[object Object]"]
console.log(b,a[b])
a[c] = 456; // ALSO sets a["[object Object]"]
console.log(b,a[b])
console.log(Object.keys(a))
console.log(a[b]);

console.log(a["[object Object]"]);

关于javascript - 我们可以使用对象作为Javascript中对象的键吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68891298/

相关文章:

javascript - $filter 工作但导致 "Error: 10 $digest() iterations reached. Aborting!"

javascript - Chrome 没有声明我的 JavaScript 函数

javascript - 如何在js中访问id样式的属性

java - Android:指定数组大小?

java - 将一维数组处理为 a[ (b=c) [index]]。这是什么意思?

javascript - JQuery .val 不工作

arrays - 计算数组中出现的次数

c++ - 数组错误的初始值设定项太多

objective-c - 这个对象会发生什么

javascript - jquery ajax发送json