变量作为JavaScript对象文字中的属性名称?

jsg*_*ove 46 javascript

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

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

var myVar = "name";
var myObject = {
    {myVar}: "value"
};
Run Code Online (Sandbox Code Playgroud)

Thi*_*ter 156

您可以使用[]语法将表达式用作属性名称(与始终将它们视为字符串的语法.propprop: value语法进行比较):

var myObject = {};
var myVar = "name";
myObject[myVar] = "value";
Run Code Online (Sandbox Code Playgroud)

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


编辑

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

var myVar = "name";
var myObject = {
    [myVar]: "value"
};
Run Code Online (Sandbox Code Playgroud)

  • 单词+1.言语总是很好. (24认同)
  • +1用于明确提及在对象文字中无法执行此操作.(这就是我们都在这里的原因,不是吗?) (15认同)
  • 还有更多的更新点,所以后来者知道它已经成为可能! (6认同)

Ble*_*der 10

像这样?

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

myObject[myVar] = "value";
Run Code Online (Sandbox Code Playgroud)


Nie*_*sol 7

是的,但不是直接的.

var myVar = "name";
var object = {};
object[myVar] = "value";
Run Code Online (Sandbox Code Playgroud)

  • @IsaacKleinman足够公平,但到那时它几乎比这个解决方案更长.顺便说一句,你在"enumerable"之前错过了一个逗号. (2认同)

归档时间:

查看次数:

56575 次

最近记录:

9 年,1 月 前