【问题标题】:ECMAScript object spread/rest - assigning to multiple properties at onceECMAScript 对象扩展/休息 - 一次分配给多个属性
【发布时间】:2019-01-29 09:02:55
【问题描述】:

新的对象休息/传播语法有一些令人惊讶的好应用,比如omitting a field from an object

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

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

注意:不丢失o的现有属性,只添加它们。

【问题讨论】:

    标签: javascript object ecmascript-next ecmascript-2017


    【解决方案1】:

    使用Object.assign:

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

    请注意,速记属性名称和Object.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】:
      const foo = 'foo';
      const bar = 'bar';
      const baz = 'baz';
      const o = {foo, bar, baz};
      console.log(o);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-05-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-05
        • 2022-11-02
        • 1970-01-01
        相关资源
        最近更新 更多