60

可能重复:
如何使用变量作为名称将属性添加到 Javascript 对象?
在 JavaScript 文字中使用变量作为属性名称?

是否可以在 JavaScript 中添加变量作为对象的属性名称,如下所示:

var myVar = "name";
var myObject = {
    {myVar}: "value"
};
4

3 回答 3

199

您可以使用[]语法将表达式用作属性名称(与始终将其视为字符串的.propand语法相比):prop: value

var myObject = {};
var myVar = "name";
myObject[myVar] = "value";

但是,没有办法在对象文字中使用它。您必须先创建对象,然后分别分配每个属性。


编辑

使用 ES6,现在可以使用ComputedPropertyName来实现,它以以下语法的形式显示:

var myVar = "name";
var myObject = {
    [myVar]: "value"
};
于 2012-06-15T00:06:20.300 回答
11

像这样?

var myVar = "name";
var myObject = {};

myObject[myVar] = "value";
于 2012-06-15T00:06:38.073 回答
10

是的,但不是直接的。

var myVar = "name";
var object = {};
object[myVar] = "value";
于 2012-06-15T00:06:12.103 回答