Spread运算符
允许从 iterable 表达式(如另一个数组文本)初始化部分数组文本,或允许表达式扩展到多个参数(在函数调用中)。
语法
var array = [[arg0ToN ,] ...iterable [, arg0ToN]]
func([args ,] ...iterable [, args | ...iterable])
参数
iterable
必需。 迭代对象。
arg0ToN
可选。 数组文本的一个或多个元素。
args
可选。 函数的一个或多个参数。
以下代码示例将 spread 运算符的用法与 concat 方法的用法进行了对比。
var a, b, c, d, e;
a = [1,2,3];
b = "dog";
c = [42, "cat"];
// Using the concat method.
d = a.concat(b, c);
// Using the spread operator.
e = [...a, b, ...c];
console.log(d);
console.log(e);
// Output:
// 1, 2, 3, "dog", 42, "cat"
// 1, 2, 3, "dog", 42, "cat"
下面的代码示例演示了如何在函数调用中使用 spread 运算符。 在此示例中,使用 spread 运算符将两个数组文本传递给了函数,并且数组扩展到多个参数
function f(a, b, c, x, y, z) {
return a + b + c + x + y + z;
}
var args = [1, 2, 3];
console.log(f(...args, 4, ...[5, 6]));
// Output:
// 21
使用 spread 运算符,可以简化之前需要使用 apply 的代码。
function f(x, y, z) {
return x + y + z;
}
var args = [1, 2, 3];
// Old method
func.apply(this, args);
// New method
func(...args);
原文:https://msdn.microsoft.com/zh-cn/library/dn919259(v=vs.94).aspx