javascript如何将属性添加到对象?

时间:2016-09-20 13:21:28

标签: javascript javascript-objects

我正在阅读javascript问题,我找到了这段代码

var a={},
    b={key:'b'},
    c={key:'c'};

a[b] = 123;
a[c] = 456;

console.log(a[b]);      // o/p - 456

任何人都可以让我理解这段代码为什么以及如何打印 456

我认为我们可以使用a.b = 123字符串 a['b'] = 123方法向对象添加属性。

2 个答案:

答案 0 :(得分:3)

bc都解析为相同的字符串([object Object])。因此,您将覆盖相同的密钥。

  

我认为我们可以使用点,即a.b = 123和字符串a ['b'] = 123   将属性添加到对象的方法。

是的,你可以,但a['b']a[b]非常不同。第一个解析为具有字符串值的键,就像它显示的那样('b'),其中另一个将取决于变量b的字符串化值(在这种情况下是{{1 }})。

答案 1 :(得分:0)

要真正使用对象的内容,您可以使用stringified版本。

var a = {},
    b = { key: 'b' },
    c = { key: 'c' };

a[JSON.stringify(b)] = 123;
a[JSON.stringify(c)] = 456;

console.log(a[JSON.stringify(b)]);