开始学习 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
方法,在这种情况下将返回[对象对象]
所以 bar
和 foo
转换为字符串时是等价的。
因此,您可以将其视为像这样访问对象 object[[[object Object]"
]
bar.toString()//“[对象对象]”
foo.toString()//“[对象对象]”
关于javascript - 对象 [] 表示法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33851882/