Удовлетворительный ECMAScript 6 Разрушающие сценарии использования

Почему деструктуризация была введена в ECMAScript 6?

3 ответа

Вот еще один: Map#entries возвращает итератор (key, value) кортежи. Самый элегантный способ их перебрать - использовать деструктуризацию:

for (var [key, value] of map.entries()) {
    // ...
}

Тривиальный пример:

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

Разрушение аргумента это весело

function ({opt1 = true, opt2 = false, opt3} = {}) { ...

не уверен, почему я хотел бы использовать [x, y] = [y, x],

Поскольку использование дополнительной переменной two swap two значения является громоздким, и 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')
    
Другие вопросы по тегам