开始学习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
答案 0 :(得分:6)
因为对象属性具有键和值。键总是一个字符串。当您尝试为该键为变量并将其设置为对象的值设置键时,它将调用对象/变量的.toString
方法,这种情况下将返回{{1} }
因此[object Object]
和bar
在转换为字符串时将是等效的。
因此,您可以将其视为访问此对象foo
]
object["[object Object]"
bar.toString() // "[object Object]"