javascript - 你能评估 JS 对象中的属性名称吗?

标签 javascript

<分区>

我知道您可以计算 JS 对象内部属性的值,如下所示:

let object = {
  value: 5+5
};

我想知道是否有任何可能的方法来使用 JS 评估属性的名称,即实现以下目标:

let object;
object[5+5].value = "ten";

比如:

let object = {
  5+5: "ten"
};

最佳答案

在 ES2015 中是,在 ES5 中不是,但首先让我们弄清楚一件事:那是 JavaScript,而不是 JSON。

在 ES2015(以前称为 ES6)中:

var something = "foo";
var object = {
  [something]: "bar";
};
alert(object.foo); // "bar"

[ ] 里面可以是任何你喜欢的表达式。返回的值被强制转换为字符串。这意味着您可以享受数小时的乐趣,例如

var counter = function() {
  var counter = 1;
  return function() {
    return counter++;
  };
};
var object = {
  ["property" + counter()]: "first property",
  ["property" + counter()]: "second property"
};
alert(object.property2); // "second property"

JSON 是一种受 JavaScript 对象初始化语法启发的序列化格式。绝对没有办法在 JSON 中执行类似的操作。

关于javascript - 你能评估 JS 对象中的属性名称吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32083342/

相关文章:

javascript - 将 Jasmine 与 Sublime Text 2 结合使用

javascript - 将类添加到 <div> 标记会导致字体渲染延迟 (Bootstrap 4)

javascript - 无法在构造函数中分配它

javascript - 如何一键运行多个JavaScript函数

javascript - Nodejs : Need to assign the command line parameters

javascript - 有没有可以从网页中删除广告的 JavaScript 库?

javascript - 如何总结两个不同构造函数的属性?

javascript - react native : How to parse an ics/ical file

javascript - 在获取图像大小时绕过异步

javascript - 如何在 JavaScript 中获取 var 的一部分?