将对象文字传递给函数内具有变量名称的对象

时间:2015-10-09 19:49:38

标签: javascript object object-literal

这只是一个例子:

var foo = "foo1";
fooFunction({
    bar: {
        foo : value
    }
});

该属性的名称为foo,而不是foo1

如何将其称为foo1

2 个答案:

答案 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
    }
});

这称为计算属性名称。