ES6 Rest参数

Rest参数

Rest参数接收函数的多余参数,组成一个数组,放在形参的最后,形式如下:

function func(a, b, ...theArgs) {
    // ...
}
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) {
    // ...
}

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

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

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

(function(a) {}).length     // 1
(function(...a) {}).length      // 0
(function(a, b, ...c)).length   // 2
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值