先阅读以下递归代码
function fn(num){
if(num <= 1){
return 1;
}else{
return num * fn(num - 1)
}
}
var b = fn
fn = null
b(4) // 报错
通过arguments.callee代替函数名
function fn(num){
if(num <= 1){
return 1;
}else{
return num * arguments.callee(num - 1)
}
}
var b = fn
fn = null
b(4) //24
来看看打印出arguments.callee是怎样的 ?
function fun() {
console.log(arguments.callee);
}
fun();
//VM52:2 ƒ fun() {
// console.log(arguments.callee);
//}
网友评论