Noi*_*art 3 javascript ecmascript-6
我有这个变量:
var a = {b:1, c:2, d:'rawr', rawr:10};
Run Code Online (Sandbox Code Playgroud)
我想将这些构建到本地范围,所以我这样做:
var {b, c, d} = a;
Run Code Online (Sandbox Code Playgroud)
这很好但我需要rawr离开.我试过这个:
var {b, c, d, [a.d]} = a;
Run Code Online (Sandbox Code Playgroud)
但这让我missing : after property id这么努力:
所以我接着做了两步:
var {b, c, d} = a;
var {[d]} = a;
Run Code Online (Sandbox Code Playgroud)
然而,这给了我SyntaxError: missing : after property id.无论如何在ES6中这样做?
预期结果是:
var b = 1;
var c = 2;
var d = 'rawr';
var rawr = 10;
Run Code Online (Sandbox Code Playgroud)
你可以像这样解构它:
var {b, c, d, [d]: q} = a;
Run Code Online (Sandbox Code Playgroud)
因此,具有名称的属性中的任何内容都被d分配给q.
UPD:
您在更新中询问的内容是不可能的.*
您需要为其分配一个变量。您不能使用“计算”变量名称1,因为这会违反标识符的静态范围解析规则。所以你应该做
var {b, c, d, [a.d]: rawr} = a;
Run Code Online (Sandbox Code Playgroud)
获取变量中a.d-named 属性的rawr值。
1:好吧,你可以在草率模式下使用eval或with语句来做到这一点,但正是因为这个,两者都被鄙视。
| 归档时间: |
|
| 查看次数: |
938 次 |
| 最近记录: |