arguments.callee 在哪一个函数中运行,它就代表哪一个函数。 一般用在匿名函数中。
在匿名函数中有时会需要自己调用自己,但是由于是匿名函数,没有名子,无名可调。
这时就可以用arguments.callee来代替匿名的函数。
show me the code:
(function(n){
if(n > 1) return n* arguments.callee(n-1);
return n;
})(10);
现在arguments.callee 被弃用了。怎么办,其实很简单,给内部函数一个名字即可
function show(n) {
var arr = [];
return (function fn() {
arr.unshift(n);
n--;
if (n != 0) {
fn();
}
return arr;
})()
}show(5)//[1,2,3,4,5]