剩余参数 - 2019-02-22

2019-02-22  本文已影响0人  勇敢的小拽马

与 arguments 不同

for example:
function func(a, ...args) {
  console.log(a)
  console.log(args)
}
func(1)
func(1, 2, 3, 4)
image.png
function func(a, b, ...args) {
  console.log(a, b)
  console.log(args)
}
func(1, 2)
image.png
function func(...args) {
  console.log(args)
}
func(1) // [1]
func(1, 2, 3, 4) // [1,2,3,4]
后不可再跟参数
function func(a, ...args, b) {
 
}
image.png

函数 length 不包括 args

当您使用剩余参数后,函数的length属性会发生一些变化

function func(a, b, ...args) {
}
func.length // 2

即length不包含args,为2。

与 arguments 区别

function func(a, ...args) {
    console.log(args instanceof Array)
}
func(1, 2) // true

请注意,rest不能和arguments一起使用,会报错

function func(...args) {
  console.log(args)
  console.log(arguments)
}
image.png
上一篇下一篇

猜你喜欢

热点阅读