javascript的剩余参数

一、js中没有重载的机制

  在js中是没有重载的,如果需要声明多个重名的函数,则不论函数形参个数是否一致,最后声明的函数有效,其他函数全部无效

二、使用arguments对象获取函数的实参

  js函数声明时,无论是否显式的提供了形参,在函数调用时,arguments都能获取到实参

  

 1 function fn() {
 2     console.log(arguments)
 3 }
 4 
 5 fn(1,2,3) // Arguments(3) [1, 2, 3, callee: ƒ, Symbol(Symbol.iterator): ƒ]
 6 
 7 function fn1(a,b) {
 8     console.log(arguments)
 9 }
10 
11 fn1(11,22,33) // Arguments(3) [11, 22, 33, callee: ƒ, Symbol(Symbol.iterator): ƒ]

 

三、使用ES6提供的剩余参数

  arguments 是一个可迭代对象 并不是一个真正的数组,无法使用数组的方法 使用起来比较麻烦

  ES6中 js为我们提供了函数的剩余参数,可用于替代arguments  函数的剩余参数需要在参数列表中定义  

  需要注意的是必须定义在参数列表的最后

  

1 function fn(a, b, ...args) {
2     console.log(args)
3 }
4 
5 fn(1,2,3,4,5) // [3,4,5]

 

posted @ 2023-04-24 23:34  coderchow  阅读(328)  评论(0)    收藏  举报