Javascript 为什么我的解构失败了?

Javascript 为什么我的解构失败了?,javascript,node.js,Javascript,Node.js,我有类似以下代码: class Foo { foo() { return this.query( { key : "value" }, { multiple: true, resolveForeignKeys: false } ); } query( conditions, { cast = null, multiple = false, resolveForeignKeys = true } = {} ) {

我有类似以下代码:

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();
当我在浏览器中运行它时,该代码工作正常。但是,当我通过节点运行它时,我将得到以下错误:

TypeError: Cannot read property 'multiple' of undefined.
当我从函数声明中删除默认值
={}
时,代码将正常运行。我也确信这在前几天的另一台机器上运行良好


我还发现,答案表明问题来自缺少的默认值(
={}
)。

这是一个与解构相关的错误

显著变化
  • deps
    • V8:对分解边缘情况的各种修复
      • V8上游樱桃采摘3c39bac(克里斯蒂安·卡瓦利)
      • 来自上游v8的cherry pick 7166503(克里斯蒂安·卡瓦利)