如 MDN 中所述, 属性名称必须是字符串。
对于代码,
var foo = {unique_prop: 1}, obj = {};
obj[foo] = 'value';
console.log(obj[foo]);
在 MDN ,它说,
在 SpiderMonkey JavaScript 引擎中,该字符串将为“['object Object']”。
对象类型obj
的属性(字符串文字)如何存储?
属性是否存储为“['unique_prop 1']”
?
最佳答案
当您从变量创建对象的属性时,JS 引擎会对传递的值调用 toString()
方法。键的实际值由 from its type 决定.
您可以自己检查此行为:
var foo = {};
foo.toString = function() {
return "toString";
}
var bar = {};
bar[foo] = "prop value";
for (var k in bar) {
console.log(k);
}
关于javascript - JavaScript 中对象的属性访问器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31977227/