在JavaScript中是否可以像这样将变量作为对象的属性名:
可能重复:
如何使用变量作为名称将属性添加到Javascript对象中?
在JavaScript字面量中使用变量作为属性名?
var myVar = "name";
var myObject = {
{myVar}: "value"
};
在JavaScript中是否可以像这样将变量作为对象的属性名:
可能重复:
如何使用变量作为名称将属性添加到Javascript对象中?
在JavaScript字面量中使用变量作为属性名?
var myVar = "name";
var myObject = {
{myVar}: "value"
};
使用ES6,现在可以使用ComputedPropertyName来实现此功能,具体表现为以下语法形式:
var myVar = "name";
var myObject = {
[myVar]: "value"
};
您可以使用[]
语法,将表达式用作属性名称(与.prop
和prop: value
语法不同,它们始终被视为字符串):
var myObject = {};
var myVar = "name";
myObject[myVar] = "value";
不过,在对象字面量内部无法使用它,你必须先创建对象,然后单独为每个属性赋值。
像这样吗?
var myVar = "name";
var myObject = {};
myObject[myVar] = "value";
可以,但不是直接的。
var myVar = "name";
var object = {};
object[myVar] = "value";
var object = Object.defineProperty( {}, myVar, { value: "value" } );
- Isaac Kleinmanvar object = Object.defineProperty( {}, myVar, { value: "value", enumerable: true, writable: true, configurable: true } );
仍然只有一行。;) - Isaac Kleinman