函数中的arguments
2024-06-02 本文已影响0人
LcoderQ
在日常编码过程中,常会涉及到函数的传参
默认情况下,函数本身会带有arguments属性
function myFn(...args) {
console.log(arguments);
}
myFn(1,2,3,4,5)
arguments.png
观察打印结果可知
- arguments属性是一个类数组的结构
- arguments包含一个callee的属性,代表该函数(myFn)
特别注意
- 箭头函数是没有arguments属性的
var myFn2 =(...args)=> {
console.log(arguments);
}
myFn2(1,2,3,4,5)
打印结果
箭头函数没有arguments.png
arguments常用
由于arguments是一个类数组,除上面打印的属性外,没有其他数组常用的map,filter等方法,因此在使用过程中我们通常会生成一个新的数组然后进行操作,常用的方法如下:
function myFn(...args) {
console.log(arguments);
//from方法从类数组复制一个新的数组
var newArr = Array.from(arguments);
console.log(newArr);
//利用数组的slice方法,slice内部是用迭代的方法生成一个新的数组作为返回值
newArr = Array.prototype.slice.call(arguments);
console.log(newArr);
newArr = [].slice.call(arguments);
console.log(newArr);
}
myFn(1, 2, 3, 4, 5);