javascript - 对象 [] 表示法

标签 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”。 我的问题是没有为“object”定义的属性名称“bar”那么为什么 object[bar] 打印值“value1 "- 分配给 object[foo]

--迪维耶什

最佳答案

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

所以 barfoo 转换为字符串时是等价的。

因此,您可以将其视为像这样访问对象 object[[[object Object]"]

bar.toString()//“[对象对象]”

foo.toString()//“[对象对象]”

关于javascript - 对象 [] 表示法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33851882/

相关文章:

javascript - 在 For in 循环中渲染复选框并在 Vue JS 中绑定(bind)它们的值

javascript - Firebase 事务错误 : [Error: Set]

javascript - 为什么 $(this).val() 在第二种方法中给我第一种方法的值?

php - 如何创建计时器

Javascript $ ('li' ).length 调用抛出未捕获的异常

html - 使用 css 和 html 创建 hr,箭头位于左下角

javascript - 将数组转换为函数参数列表

python - 动态更改代表类对象的实例变量 - Python

c++ - 无法更新作为列表中节点一部分的对象内的值

JavaScript 空对象大小