2

我有一个对象:

var obj = {fields : []};

还有一个变量:

var x = "property_name";

现在,如何使用变量 x 中的值作为要推入数组的对象的属性名称?

我尝试了类似下面的方法,但它x从字面上理解并将其用作属性名称。我要使用的是存储在变量中的值x。那可能吗?

obj.fields.push({x : 'im a value'});
4

1 回答 1

4

您不能为此目的使用对象文字语法。但是,您可以创建一个新对象,然后使用[]语法 - 请记住,obj.xyz等效于obj['xyz']- 但正如您在后者中的引号中看到的那样,您可以在那里使用表达式- 例如变量:

var x = "property_name";
var obj = {};
obj[x] = 'value';
obj.fields.push(obj);
于 2012-09-06T02:06:05.297 回答