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(克里斯蒂安·卡瓦利)
- V8:对分解边缘情况的各种修复