使用arguments对象可以引用函数的参数。具体通过以下代码讲解。
1.通过索引的方式获取参数值
function sayHi() {
if (arguments[0] == "bye") {
return;
}
alert(arguments[0]);
}
sayHi("zhaimin")
它类似于数组,却和数组不完全相同,例如数组会提供sort(),slice()方法,而arguments不会。它与数组的相同之处是都有索引和length属性。
function sayHi() {
alert(arguments.length);
}
undefined
sayHi("zhaimin",2,3,4)
2.arguments.callee属性
该属性引用的是当前被调用的函数对象,也就是说函数在被调用时会返回自身的引用。所以我们利用它的特性可以巧妙的实现递归。
(function (count) {
alert(count)
if(count<5){
arguments.callee(++count)
}
})(1)
alert会依次弹出1,2,3,4,5