js学习随笔之Spread 运算符 (...)

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

猜你喜欢

转载自blog.csdn.net/qq_33981438/article/details/80982776