我知道您可以在JS对象内部评估属性的值,如下所示:
let object = {
value: 5+5
};
Run Code Online (Sandbox Code Playgroud)
我想知道是否有任何可能的方法来评估JS属性的名称,即实现以下目的:
let object;
object[5+5].value = "ten";
Run Code Online (Sandbox Code Playgroud)
像这样的东西:
let object = {
5+5: "ten"
};
Run Code Online (Sandbox Code Playgroud)
在ES2015中是的,在ES5中没有,但首先让我们清楚一点:那是JavaScript,而不是JSON.
在ES2015(以前称为ES6)中:
var something = "foo";
var object = {
[something]: "bar";
};
alert(object.foo); // "bar"
Run Code Online (Sandbox Code Playgroud)
里面[ ]可以是你喜欢的任何表达.返回的值被强制转换为字符串.这意味着您可以享受数小时的乐趣
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"
Run Code Online (Sandbox Code Playgroud)
JSON是一种受JavaScript对象初始化语法启发的序列化格式.绝对没有办法在JSON中做任何类似的事情.
| 归档时间: |
|
| 查看次数: |
88 次 |
| 最近记录: |