ES6 Rest参数

ES6 Rest参数

Rest参数
ES6 引入 rest 参数(形式为…变量名),用于获取函数的多余参数,这样就不需要使用arguments对象了。rest 参数搭配的变量是一个数组,该变量将多余的参数放入数组中。
Rest参数接收函数的多余参数,组成一个数组,放在形参的最后,形式如下:

function func(a, b, ...theArgs) {
    // ...
}123

Rest参数和arguments对象的区别

rest参数只包括那些没有给出名称的参数,arguments包含所有参数;
arguments对象不是真正的array,而rest参数是Array的实例,可以直接应用sort, map, forEach, pop等方法;
arguments对象拥有一些自己额外的功能。

从arguments转向数组

Rest参数简化了使用arguments获取多余参数的方法。

// Before rest parameters, the following could be found
function func(a, b) {
    var args = Array.prototype.slice.call(arguments, f.length);

    // ...
}

// to be equivalent of
function func(a, b, ...args) {
    // ...
}1234567891011

注意,rest参数之后不能再有其它参数(即,只能是最后一个参数),否则会报错。

function func(a, ...b, c) {
    // ...
}
// Rest parameter must be last formal parameter1234

函数的length属性,不包括rest参数:

(function(a) {}).length     // 1
(function(...a) {}).length      // 0
(function(a, b, ...c)).length   // 2

猜你喜欢

转载自blog.csdn.net/weixin_44260504/article/details/89884302