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。
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/23134.html