javascript - object []表示法

use*_*970 1 html javascript 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>
Run Code Online (Sandbox Code Playgroud)

当我运行这个程序时,它会在单独的行中打印值" value1"," value1".我的问题是没有为" bar"定义属性名称" " object然后为什么object[bar]打印值" value1" - 分配给object[foo].

--Divyesh

Rya*_*yan 6

因为对象属性具有键和值.键总是一个字符串.当您尝试为该键设置一个键,该键是一个变量而它作为一个对象时,它将.toString调用对象/变量的方法,这种情况下将返回[object Object]

所以barfoo当转换为一个字符串将是等效的.

所以,您可以将其视为访问此类对象object["[object Object]"]

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

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