arguments为伪数组,伪书组就是不能使用数组的方法
arguments这个值等于函数括号内的参数,以伪数组的方式体现
function ff(a,b,c){
console.log('参数是',arguments);
}
ff(1,2,3)//结果:'参数是',[1,2,3]
function ff(a,b,c){
console.log('参数是',arguments);
var arr=Array.prototype.slice.call(arguments)
}
ff(1,2,3)
分析代码:
var arr=Array.prototype.slice.call(arguments)
这一行代码即可将arguments伪书组转为真数组即:可使用数组的相关方法
1.首先数组的slice方法,会将原有数组转成一个新数组
2. .call(arguments)是将这个伪数组的值 arguments 赋值给slice后的新数组
3.call本来就是修改this指向的,然后再将slice后的新数组this指向转化为arguments这个this
4.arr就是转化后的真数组