【发布时间】:2017-08-01 15:58:21
【问题描述】:
我正在运行 Node v6.6.0,它支持解构函数参数:
function foo ({ a: { b }}) {
// stuff
}
假设我想解构并访问a 和b。遗憾的是,以下不起作用似乎有效:
function foo ({ a: { b }}) {
return [a, b]
}
foo({ a: { b: 123 }})
// ReferenceError: a is not defined!
这是 Node 中的错误还是 ES6 的预期行为? a 和 b 不应该在函数中定义吗?如果不是,为什么解构会产生取消定义基本属性名称的效果(a)?
有没有办法可以使用参数解构在函数中同时定义a 和b?我明确地试图避免手动解构它们。
【问题讨论】:
-
a仅指定要从参数b的哪个属性中获取。它没有作为参数定义或访问。如果要访问a,则必须在函数中自己提取b。
标签: javascript ecmascript-6 destructuring