Babel对ES6对象解构的实现是否正确?

Mar*_*ahn 8 javascript destructuring ecmascript-6

所以基本的desctucturing是好的,{a, b} = obj转化为a = obj.a; b = obj.b.

我的问题是我偶然遇到的一些奇怪的语法,我想知道是否有人可以指出我的规格,因为我找不到它:

({a, b} = obj).c
Run Code Online (Sandbox Code Playgroud)

这样就做了两个a,b分配然后返回obj.c.对我来说,字节流解码器实际上非常有用,我可以写:

let width = ({bytes} = intDecode(bytes)).number;
Run Code Online (Sandbox Code Playgroud)

我的问题是我没有在任何地方看到过这种语法,也不想依赖于错误实现或提案阶段的内容.

zer*_*kms 2

解构赋值没有什么特别之处:它的计算方式与任何其他带有=运算符的赋值相同。

所以它返回了rval

这意味着您可以依赖您的语法。

一些细节:

解构部分在6[ 1 ]中进行评估:

令为using作为参数的status执行结果。DestructuringAssignmentEvaluationassignmentPatternrval

在这一项之后,作业评估会像往常一样进行,就像本a = b = 42;例一样。

参考: