spread operator(不要与rest parameters 混淆)的作用类似于apply()。
它允许您调用一个函数,将数组的参数作为单个值传递。
举个例子:
var myArray = [5, 10, 50];
Math.max(myArray); // Error: NaN
Math.max.apply(Math, myArray);
Math.max() 方法不支持数组;它只接受数字。将数组传递给 Math.max() 函数时,会引发错误。但是当使用 apply() 方法时,数组是作为单独的数字发送的,所以 Math.max() 方法可以处理它。
使用扩展运算符,您不再需要使用apply() 方法,并且可以轻松地将表达式扩展为多个参数:
var myArray = [5, 10, 50];
Math.max(...myArray); // 50
更容易写,更容易阅读。
在 Ecma 6 中使用 spread(...) 的不同方法是什么?
适用于:
1.组合数组
var arr1 = [1, 2, 3];
var arr2 = [4, 5, 6];
arr1.push(...arr2)
2。复制数组
而不是使用 slice()
var arr1 = [1, 2, 3, 4, 5, 6];
var a = arr1.slice();
你可以:
var a = [...arr1]
3.调用函数而不是使用apply()
..如上所示。