Arguments对象
1、在JavaScript中,argument对象是一个比较特别的对象,实际上是当前函数的一个内置属性。arguments非常类似Array。但实际上不是一个Array实例。
2、arguments对象的长度由实参个数而不是形参个数决定
。形参是函数内部重新开辟内存空间存储的变量,但是与其arguments对象内存空间并不重叠。对于arguments和值都存在的情况下,两者是同步的,但是对其中一个无值的情况下,对于此无值的情形值不会得以同步。
function f(a, b, c){
alert(arguments.length); // result: "2" a = 100;
alert(arguments[0]);
// result: "100" arguments[0] = "qqyumidi";
alert(a); // result: "qqyumidi"
alert(c); // result: "undefined" c = 2012;
alert(arguments[2]); // result: "undefined"}f(1, 2);
3、JavaScript中函数不能重载
(1)JavaScript函数的声明没有返回类型的概念
(2)JavaScript中形成的个数严格意义讲只为了方便在函数的变量操作,实际上实参依据存储在arguments对象中了
4、arguments对象中callee,arguments.callee返回此arguments对象所在函数引用。在使用函数递归调用时推荐使用arguments.callee代替函数名本身.
callee是argument的一个指针,指向拥有argument对象的函数。
function cont(a){
if(a==1){
return 1;
}
return a+arguments.callee(--a); //用arguments.callee来代替cout()函数。
}
var mm=count(10);
alert(mm);