这只是一个例子:
var foo = "foo1";
fooFunction({
bar: {
foo : value
}
});
该属性的名称为foo
,而不是foo1
。
如何将其称为foo1
?
答案 0 :(得分:2)
您无法在对象文字中指定动态属性名称,您必须在创建对象后添加属性。
var foo = "foo1";
var obj = {
bar: {}
};
obj.bar[foo] = value;
function(obj);
答案 1 :(得分:1)
当用作函数调用的输入时,对象文字没有什么特别之处。对象文字的规则适用于任何使用它的地方,包括赋值,输入参数,破坏(ES2015)或我可能遗漏的任何其他用法。
使用ES2015可以稍微改变一下:
var foo = "foo1";
fooFunction({
bar: {
[foo] : value
}
});
这称为计算属性名称。