如何为JavaScript对象分配多个值?

iwa*_*shi 4 javascript object key-value

假设我有一个具有键/值对的对象,如下所示:

var someVar = {
    color: "white",
    font_size: "30px",
    font_weight: "normal"
...some more variables and functions
};
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以对这些键进行多次分配,而不必执行以下操作:

someVar.color = "blue";
someVar.font_size = "30px";
...
Run Code Online (Sandbox Code Playgroud)

Moh*_*sen 7

使用 ES6 扩展运算符:

someVar = {...someVar, color: "blue", font_size: "30px"}
Run Code Online (Sandbox Code Playgroud)


mik*_*dge 5

借助ES2015,您可以使用Object.assign

const someVar = {
    color: "white",
    font_size: "30px",
    font_weight: "normal"
};

const newVar = Object.assign({}, someVar, { 
    color: "blue", 
    font_size: "30px"});

console.log(newVar);
Run Code Online (Sandbox Code Playgroud)

=>

{
    color: "blue",
    font_size: "30px",
    font_weight: "normal"
}
Run Code Online (Sandbox Code Playgroud)


Doo*_*nob 3

您可以循环另一个对象:

var thingsToAdd = {
    color: "blue",
    font_size: "30px"
};
for (var x in thingsToAdd) someVar[x] = thingsToAdd[x];
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用with警告:这几乎肯定是一个主意!请参阅链接。我仅出于教育目的发布此内容;您几乎应该在生产代码中使用with!):

with (someVar) {
    color = "blue";
    font_size = "30px";
}
Run Code Online (Sandbox Code Playgroud)