为什么 Javascript 语法不支持具有可变属性的内联对象文字?例如:
const f = function (arg) {
console.log(arg);
}
f({}['some key'] = 1) // 1
f({ 'some key' : 1}) // [object Object] { some key: 1 }
Run Code Online (Sandbox Code Playgroud)
除了这两个步骤还有其他选择吗?
var o = {}
o['some key'] = 1
f(o)
Run Code Online (Sandbox Code Playgroud)
谢谢!
小智 7
为什么 Javascript 语法不支持具有可变属性的内联对象文字?
您似乎在询问变量属性,但您的示例不使用变量。具体来说,这个例子会很好地工作。
f({ 'some key' : 1})
Run Code Online (Sandbox Code Playgroud)
但是,如果您确实想在不先创建对象的情况下使用变量,ECMAScript 6 现在允许这样做。
所以如果这是你的变量:
var my_variable = 'some key';
Run Code Online (Sandbox Code Playgroud)
您现在可以在对象文字中的属性名称周围使用方括号,它将使用您提供的表达式的值:
var o = {[my_variable]: 1};
Run Code Online (Sandbox Code Playgroud)
该o对象将有一个名为 的属性"some key"。当然,这只适用于支持这种语法的实现。
| 归档时间: |
|
| 查看次数: |
5751 次 |
| 最近记录: |