MDN介绍:展开语法(Spread syntax), 可以在函数调用/数组构造时, 将数组表达式或者string在语法层面展开;还可以在构造字面量对象时, 将对象表达式按key-value的方式展开。
一、在函数调用时使用
在没有展开语法之前,通过apply()来将数组中元素传递给函数。
// 使用apply()方法展开
function f(a, b) {
return a + b;
}
const c = [1, 2];
// apply()方法的作用是改变this的指向
// apply()的第一个参数为空,表示this指向全局对象
// 这里相当于将数组c展开,作为函数参数
const result = f.apply(null, c);
console.log(result); // 3
然鹅,我们有了展开语法,那可就方便太多了。
function f(a, b) {
return a + b;
}
const c = [1, 2];
// 使用展开语法
const result = f(...c)
console.log(result); // 3
灵活使用展开语法传递所有参数
function f(a,b,c,d,e){
return a+b+c+d+e
}
const arr = [1,2,3]
const result = f(0,...arr,4)
console.log(result); // 10