<分区>
我知道您可以计算 JS 对象内部属性的值,如下所示:
let object = {
value: 5+5
};
我想知道是否有任何可能的方法来使用 JS 评估属性的名称,即实现以下目标:
let object;
object[5+5].value = "ten";
比如:
let object = {
5+5: "ten"
};
标签 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 - Nodejs : Need to assign the command line parameters
javascript - 有没有可以从网页中删除广告的 JavaScript 库?