解构为何有用?

ES5 及更早版本中,从对象或数组中获取信息、并将特定数据存入本地变量,需要书写许多并且相似的代码。例如:

let options = {
        repeat: true,
        save: false
    };

// extract data from the object
let repeat = options.repeat,
    save = options.save;

此代码提取了 options 对象的 repeatsave 值,并将其存在同名的本地变量上。虽然这段代码看起来简单,但想象一下若有大量变量需要处理,你就必须逐个为其赋值;并且若有一个嵌套的数据结构需要遍历以寻找信息,你可能会为了一点数据而挖掘整个结构。

这就是 ES6 为何要给对象与数组添加解构。当把数据结构分解为更小的部分时,从中提取你要的数据会变得容易许多。很多语言都能用精简的语法来实现解构,让它更易使用。ES6 的解构实际使用的语法其实你早已熟悉,那就是对象与数组的字面量语法。