对对象使用[]的方式使用属性的一个例子的理解

var foo = {unique_prop: 1}, bar = {unique_prop: 2}, object = {};
object[foo] = 'value';
console.log(object[bar]);

上述的代码的输出也是"value",由于对象foo和bar 都会被转成相同的字符串。在SpiderMonkeyJavaScript 引擎中,这个字符串将会是"['object Object']"。

 

自己的理解:对象用[]使用属性时,[]中属性需要字符串的形式,所以 foo 在被当成属性来使用时,会被强制转换成字符串,因为是对象,所以 得到 [object Object] 这个字符串,然后,object[bar] 也会这样,所以就得到了一样的值 。

foo.toString()  -->  [object Object] 

 

posted @ 2017-11-10 14:47  前端开发小姐姐  阅读(219)  评论(0编辑  收藏  举报