javascript中对象的属性访问器

时间:2015-08-12 23:42:47

标签: javascript

MDN中所述,属性名称必须是字符串。

代码,

var foo = {unique_prop: 1}, obj = {};
obj[foo] = 'value';
console.log(obj[foo]);

MDN,它说,

在SpiderMonkey JavaScript引擎中,此字符串将是" [' object Object']"。

如何将对象类型obj的属性(字符串文字)存储为?

该属性是否存储为"['unique_prop 1']"

1 个答案:

答案 0 :(得分: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);
}