我的代码类似于以下内容:
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?,答案表明问题来自缺少默认值(= {}
)。