代码之家  ›  专栏  ›  技术社区  ›  baao

为对象的属性分配默认值

  •  1
  • baao  · 技术社区  · 6 年前

    是否可以以某种方式对对象进行解构、设置默认值并将此默认值直接分配给对象的属性?

    考虑一下这个代码

    let foo = {};
    let {bar = 1} = foo;
    console.log(foo); // {}
    console.log(bar); // 1

    如你所见, foo 仍然没有 bar 财产。是否有如下可能,将道具和默认值直接分配给对象:

    let {bar = 1: foo.bar}
    

    这显然是非法语法。

    有我能用的班轮吗 成为

    {bar: 1}
    

    在解构完成之后?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Nina Scholz    6 年前

    您可以使用 object property assignment pattern [YDKJS: ES6 & Beyond] .

    var foo = {};
    
    ({ bar: foo.bar = 1 } = foo);
    console.log(foo);
    
    foo.bar = 42;
    ({ bar: foo.bar = 1 } = foo);
    console.log(foo);