function 之 arguments call apply

学向勤中得,萤窗万卷书。这篇文章主要讲述function 之 arguments call apply相关的知识,希望能为你提供帮助。
1.arguments
arguments.length为函数实参个数,arguments.callee引用函数自身。
arguments他的特性和使用方法
特性:
arguments对象和Function是分不开的。因为arguments这个对象不能显式创建,arguments对象只有函数开始时才可用。
使用方法:
虽然arguments对象并不是一个数组,但是访问单个参数的方式与访问数组元素的方式相同
例如:
arguments[0],arguments[1],。。。。。。。。arguments[n],
在js中 不需要明确指出参数名,就能访问它们,例如:

function test() { var s = ""; for (var i = 0; i < arguments.length; i++) { alert(arguments[i]); s += arguments[i] + ","; } return s; } test("name", "age")输出结果: name,age

我们知道每一个对象都有自己的属性,arguments对象也不例外,首先arguments的访问犹如Array对象一样,用0到arguments.length-1来枚举每一个元素。
下面我们来看看callee属性,返回正被执行的 Function 对象,也就是所指定的 Function 对象的正文。callee 属性是 arguments 对象的一个成员,仅当相关函数正在执行时才可用。
callee 属性的初始值就是正被执行的 Function 对象,这允许匿名的递归函数。
var sum = function (n) { if (1 == n) { return 1; } else { return n + arguments.callee(n - 1); } } alert(sum(6)); // 21 = 6 + 5 + 4 + 3 + 2 + 1

通俗一点就是,arguments此对象大多用来针对同个方法多处调用并且传递参数个数不一样时进行使用。根据arguments的索引来判断执行的方法。
2.call
.
3.apply
【function 之 arguments call apply】.


    推荐阅读