var foo = {unique_prop: 1}, bar = {unique_prop: 2}, object = {};object[foo] = 'value';console.log(object[bar]);
上述的代码的输出也是"value",由于对象foo和bar 都会被转成相同的字符串。在JavaScript 引擎中,这个字符串将会是"['object Object']"。
自己的理解:对象用[]使用属性时,[]中属性需要字符串的形式,所以 foo 在被当成属性来使用时,会被强制转换成字符串,因为是对象,所以 得到 [object Object] 这个字符串,然后,object[bar] 也会这样,所以就得到了一样的值 。
foo.toString() --> [object Object]