为什么我的解构失败了?

时间:2017-01-13 11:04:51

标签: javascript node.js

我的代码类似于以下内容:

class Foo {
  foo() {
    return this.query( { key : "value" }, {
      multiple: true,
      resolveForeignKeys: false
    } );
  }

  query( conditions, {
    cast = null,
    multiple = false,
    resolveForeignKeys = true
  } = {} ) {
    console.log( "working..." );
  }
}

(new Foo()).foo();

当我在浏览器中运行它时,此代码工作正常。但是,当我通过Node运行它时,我将收到以下错误:

TypeError: Cannot read property 'multiple' of undefined.

当我从函数声明中删除默认值= {}时,代码将正常运行。我也确定前几天在另一台机器上工作正常。

我还找到How to destructure option argument with all default values in ES6?,答案表明问题来自缺少默认值(= {})。

1 个答案:

答案 0 :(得分:4)

这是一个与fixed in Node 6.9.2

相关的解构相关错误
  

值得注意的变化

     
      
  • DEPS :      
        
    • V8 :解构边缘案例的各种修复方法      
          
      • 来自V8上游的樱桃挑3c39bac(Cristian Cavalli)#9138
      •   
      • 来自上游v8的樱桃挑选7166503(Cristian Cavalli)#9173
      •   
    •   
  •