将函数的实际参数转换成数组的方法,习惯用Array.prototype.slice.call(arguments)

实际参数在函数中我们可以使用 arguments 对象获得 (注:形参可通过 arguments.callee 获得),虽然 arguments 对象与数组形似,但仍不是真正意义上的数组。

我们可以通过数组的 slice 方法将 arguments 对象转换成真正的数组。

方法一var args = Array.prototype.slice.call(arguments);

方法二:var args = [].slice.call(arguments, 0);

方法三:

var args = []; 
for (var i = 1; i < arguments.length; i++) { 
args.push(arguments[i]);
}

注:一般的函数的 arguments.length 都在 10 以内,方法二有优势; 方法二的代码量上也比第一种少,至少可以减小一点字节

下面附一个例子:

function revse(){

 var args = Array.prototype.slice.call(arguments);
newarr=[];
 for(var i=args.length-1;i>=0;i--){ 
newarr.push(args[i]);
}
 return args;
}

var s=revse('a','b','c');
console.log(s);


你可能感兴趣的:(js,arguments)