function f(){
}
通过以上函数说明下各个参数:
arguments:像是数组,但不是数组,可以通过Object.prototype.toString.call(arguments)返回值可知,如果是数组返回为'object Array',但真正返回的是'object Object',arguments.length为实际调用函数时候实际传递的参数个数,函数定义时候的参数个数可以通过f.length。要获取调用参数的数组,如果浏览器为非IE可以通过Array.prototype.slice(arguments,0)获取,若为IE浏览器,则通过以下方法。
function toArray(arr){
var res =[];
for(var i = 0;i < arr.length;i ++)
res.push(arr[i]);
return res;
}
callee:主要用于获取匿名函数引用,通过arguments.callee获取,通过它可以很方便的实现递归,如下
function sum(n){
if(n == 1)
return 1;
else return n + arguments.callee(n -1);
}
caller:该函数的函数调用者的函数名,如果函数调用者的上下文为window,则该参数返回null,获取方式可以通过f.caller,若函数为匿名函数,可以通过arguments.callee.caller
apply:调用方式为f.apply(context,arrayArgs),通过将函数调用者上下文 设为context,arrayArgs的类型必须为数组
call:调用方式为f.call(context[,arg1][,arg2]),与apply相似,两者的不同仅为调用参数的不同
转载请说明出处 blog.csdn.net/ls5231