arguments.callee 在哪一个函数中运行,它就代表哪一个函数。
一般用在匿名函数中
在匿名函数中有时会需要自己调用自己,但是由于是匿名函数,没有名子,无名可调。
这时就可以用arguments.callee来代替匿名的函数。
(function(n){ if(n > 1) return n* arguments.callee(n-1); return n; })(10);
上述代码就是用匿名函数实现的计算10的阶乘。用arguments.calle代替匿名函数。
JS严格模式(use strict)下不能使用arguments.callee的替代方案
function(){
arguments.callee
};
转换为
(function fuc(){
fuc()
})