【发布时间】:2018-02-18 19:19:35
【问题描述】:
我在网上遇到过如下代码:
function bar() {
return {
x: 4,
y: 5,
z: 6
};
}
var which = "x",
o = {};
( { [which]: o[which] } = bar() );
console.log( o.x );
我知道这段代码是 ES6 中引入的“解构语法”的一个示例。
我还了解到o[which] 正在对象o 中搜索名为which 的键,如果找到,则返回which 键的值。
但我不太确定表达式的 [which]: 部分是如何工作的。
【问题讨论】:
-
见上面两行,即
var which = "x"。这应该可以解决您剩下的困惑。 -
@Nit 可能我的大脑目前没有工作,或者我的知识存在差距,但我现在无法理解这个问题。求你再给我一点提示?
-
这是一个计算出来的属性名。替换为它的值
"x",你会得到({ x: o.x } = bar()); -
专业提示:我注意到您的帖子对于有经验的用户来说非常健谈。如果可以的话,请让它们更简洁,因为这会为志愿者编辑带来相当多的持续工作。例如:“任何帮助将不胜感激”、“提前感谢您的帮助”、“有人可以帮帮我”等。请保持简短和重点。谢谢!
-
@halfer 感谢您的提前。记下:)
标签: javascript object ecmascript-6 destructuring