JS中argument的使用
- arguments是函数内的固有变量,以数组的形式保存了调用方给该函数传入的所有参数。
- 同时arguments比较常用的两个属性是length和callee,length表示调用方传入了多少个参数,callee表示当前函数体本身。
-
特性:arguments对象和Function是分不开的。因为arguments这个对象不能显式创建,arguments对象只有函数开始时才可用。
-
使用方法:
虽然arguments对象并不是一个数组,但是访问单个参数的方式与访问数组元素的方式相同(按照索引号访问)
可以用数组下标的方式"[]"引用arguments的元素 :例如 arguments[0]
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>argument</title>
<script type="text/javascript">
function argument_1 () {
console.log(arguments);
}
//利用argument对象对函数进行模拟重载
argument_1("w","f");
argument_1(1,2,'xixi','hehe');
function argument_2 (first, second) {
alert(first);
alert(second);
console.log(arguments);
}
argument_2("w","M");
//也可以设置参数,那些参数可以直接用参数名来取值。
function argument_3 (event) {
var obj = event.srcElement||event.target;
alert( obj.value);
console.log(arguments);
}
</script>
</head>
<body>
<div onclick="argument_3(event);">
<input type="button" value="uuu">
</div>
</body>
</html>
最终页面显示效果:控制台输出
callee 的使用:
callee 属性的初始值就是正被执行的 Function 对象:
匿名的递归函数案例
var sum = function (n) {
if (1 == n) {
return 1;
} else {
return n + arguments.callee(n - 1);
}
}
alert(sum(6));
arguments此对象的callee 属性大多用来针对同个方法多处调用并且传递参数个数不一样时进行使用。
根据arguments的索引来判断执行的方法。