代码之家  ›  专栏  ›  技术社区  ›  Dan Dascalescu

ECMAScript object spread/rest-一次分配给多个属性

  •  0
  • Dan Dascalescu  · 技术社区  · 8 年前

    新的对象rest/spread语法有一些非常好的应用程序,比如 omitting a field from an object

    是否有一种(建议的)方法也可以分配给一个对象的多个属性,即来自同名变量的值?换言之,简短地说:

    o.foo = foo;
    o.bar = bar;
    o.baz = baz;
    

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

    2 回复  |  直到 8 年前
        1
  •  5
  •   CertainPerformance    8 年前

    使用 Object.assign :

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

    对象.assign 是在ES6中引入的—它不需要非常先进的浏览器/环境。

    类似的东西 重新分配对对象的引用 将通过扩展来初始化另一个对象 o 和 foo, bar, baz :

    let o = { initial: 'initial' };
    const foo = 'foo';
    const bar = 'bar';
    const baz = 'baz';
    
    o = { ...o, foo, bar, baz };
    console.log(o);
        2
  •  1
  •   Chris Cousins    8 年前
    const foo = 'foo';
    const bar = 'bar';
    const baz = 'baz';
    const o = {foo, bar, baz};
    console.log(o);
    
    推荐文章