javascript - object []表示法

时间:2015-11-22 05:19:27

标签: javascript html object

开始学习javascript并且目前正在通过对象主题。

<!DOCTYPE html>
<html>
<body>
<h3>object prop access</h3>
<p id="demo"></p>
<p id="test"></p>
<script>

    var foo = {unique_prop: 1}, bar = {unique_prop: 2}, object = {};
    object[foo] = 'value1';

    //console.log(object[bar]);
    document.getElementById("demo").innerHTML = "Object property:"+object[bar];
    document.getElementById("test").innerHTML = "Object property object[foo]:"+object[foo];

    </script>
    </body>
    </html>

当我运行此程序时,它会在单独的行中打印值“value1”,“value1”。 我的问题是没有为“bar”定义属性名称“object”,而是为什么object[bar]打印值“value1” - 这已分配给object[foo]

- Divyesh

1 个答案:

答案 0 :(得分:6)

因为对象属性具有键和值。键总是一个字符串。当您尝试为该键为变量并将其设置为对象的值设置键时,它将调用对象/变量的.toString方法,这种情况下将返回{{1} }

因此[object Object]bar在转换为字符串时将是等效的。

因此,您可以将其视为访问此对象foo]

object["[object Object]"

bar.toString() // "[object Object]"