-1

为什么将解构引入 ECMAScript 6?

4

3 回答 3

4

简单的例子:

var {forEach} = Array.prototype;
forEach.call(document.querySelector(...

参数解构很有趣:

function ({opt1 = true, opt2 = false, opt3} = {}) { ...
于 2014-10-11T18:17:25.893 回答
4

这是另一个:Map#entries返回元组上的迭代器(key, value)。迭代它们的最优雅的方法是使用解构:

for (var [key, value] of map.entries()) {
    // ...
}
于 2014-10-11T19:45:12.897 回答
2

不知道我为什么要使用[x, y] = [y, x].

因为使用一个额外的变量两个交换两个值很麻烦,而且 JS 的传值函数调用不允许你编写 swap函数。

ECMAScript 6 的解构功能最引人注目的用例?

我能想到的,这主要用于

  • 多个函数返回值

    function rgb2hsv(r, g, b) {
         …
         return {h, s, v};
    }
    …
    var {h, s, v} = rgb2hsv(…);
    

    Promise.spawn(function* () {
        …
        var [a, b] = yield [async1(), async2()];
        …
    })
    
  • 导入模块,例如

    var {abs, trunc, round} = require('Math')
    
于 2014-10-11T17:56:48.323 回答