ECMAScript对象传播/休息 - 一次分配给多个属性

Dan*_*scu 0 javascript object ecmascript-next ecmascript-2017

新的对象rest/spread语法有一些令人惊讶的好应用程序,比如从对象中省略一个字段.

是否有(建议的)方法也可以分配给对象的多个属性,来自具有相同名称的变量的值?换句话说,更短的说法:

o.foo = foo;
o.bar = bar;
o.baz = baz;
Run Code Online (Sandbox Code Playgroud)

更新:忘记添加:不丢失o的现有属性

Cer*_*nce 5

用途Object.assign:

const o = { initial: 'initial' };
const foo = 'foo';
const bar = 'bar';
const baz = 'baz';
Object.assign(o, { foo, bar, baz });
console.log(o);
Run Code Online (Sandbox Code Playgroud)

请注意,这两个速记属性名称Object.assign都是在ES6中引入的 - 它不需要非常新的浏览器/环境.

重新分配对象引用的类似东西是通过spread o list 初始化另一个对象foo, bar, baz:

let o = { initial: 'initial' };
const foo = 'foo';
const bar = 'bar';
const baz = 'baz';

o = { ...o, foo, bar, baz };
console.log(o);
Run Code Online (Sandbox Code Playgroud)