JS arguments 对象有
一个 callee
属性,它引用当前 arguments 对象所在的
函数。使用该
属性可以在
函数体内
调用函数自身。在匿名
函数中,callee
属性比较有用。例如,利用它可以设计递归
调用。
示例
在下面示例中,使用 arguments.callee
获取匿名
函数,然后通过
函数的 length
属性获取函数形参个数,最后比较实参个数与形参个数,以检测
用户传递的参数是否符合要求。
function f(x,y,z) {
var a = arguments.length(); //获取函数实参的个数
var b = arguments.callee.length; //获取函数形参的个数
if (a != b_ { //如果实参和形参个数不相等,则提示错误信息
throw new Error("传递的参数不匹配");
}else { //如果实参和形参个数相同,则返回它们的和
return x + y + z;
}
}
console.log(f(3,4,5)); //返回值12
arguments.callee 等价于
函数名,在上面示例中,arguments.callee 等于 f。