对象属性与 ...

正如我们在第二章的“太多,太少,正合适”一节中看到的,...操作符在扩散或收集一个数组上的工作方式是显而易见的。但对象会怎么样?

这样的特性在ES6中被考虑过,但是被推迟到ES6之后(也就是“ES7”或者“ES2016”或者……)了。这是它在“ES6以后”的时代中可能的工作方式:

var o1 = { a: 1, b: 2 },
    o2 = { c: 3 },
    o3 = { ...o1, ...o2, d: 4 };

console.log( o3.a, o3.b, o3.c, o3.d );
// 1 2 3 4

...操作符也可能被用于将一个对象的被解构属性收集到另一个对象:

var o1 = { b: 2, c: 3, d: 4 };
var { b, ...o2 } = o1;

console.log( b, o2.c, o2.d );        // 2 3 4

这里,...o2将被解构的cd属性重新收集到一个o2对象中(与o1不同,o2没有b属性)。

重申一下,这些只是正在考虑之中的ES6之后的提案。但是如果它们能被确定下来就太酷了。

results matching ""

    No results matching ""