我有类似以下代码:
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.
当我从函数声明中删除默认值
= {} 时,代码将正常运行。 我也确定这在另一台机器上的另一天可以正常工作。
我还发现了一个如何在ES6中解构具有所有默认值的选项参数? ,答案表明问题来自于缺少默认值( = {} )。