javascript - JavaScript 中对象的属性访问器

标签 javascript

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/

相关文章:

javascript - 使用第三方应用程序构建我的网站文件

javascript - 在 RequireJS 中连接模块

javascript - 在 ajax 数据对象之间切换

javascript - 更改数组而不链接引用

javascript - 如何刷新页面几秒钟直到下载完成

php - 如何检查用户当前是否已登录并正在玩 Facebook 应用游戏

javascript - getElementsByClassName 与 jquery

javascript - 在href页面上执行javascript

javascript - 用 Protractor 模拟和 stub

javascript - 如何使用 JavaScript 从我的网站查询本地主机服务器?