使用Node.js 8.9.4中的默认参数进行对象解构

时间:2018-06-11 23:14:58

标签: javascript node.js object destructuring default-parameters

在将这段代码保存到文本文件并在命令行中使用节点运行时,我遇到了问题。

let x;

{k1: x = null } = {k1: "Hello"};
console.log(x);

运行此操作会在赋值运算符无效时抛出错误。

但是,当代码直接输入到节点解释器中时,它会打印出"Hello",这是我所期待的。

任何人都知道这可能是什么?我们的想法是使用默认值构造一个类,并使用相同的方法更新类,在缺少某些内容时重用当前值。

1 个答案:

答案 0 :(得分:1)

您必须使用assignment wihout declaration

let x;
({k1: x = null } = {k1: "Hello"});

或只是:

let { k1: x = null } = { k1: "Hello" };
  

需要围绕赋值语句的圆括号(...)   使用没有的对象文字解构赋值时的语法   声明。

     

{a,b} = {a:1,b:2}不是有效的独立语法,因为{a,b}   在左侧被视为块而不是对象字面。

     

然而,({a,b} = {a:1,b:2})是有效的,因为var {a,b} = {a:1,   b:2}

     

注意:您的(...)表达式需要以分号或分号开头   它可以用于在前一行执行函数。