函数的递归调用:就是指函数调用本身
argument.callee就是指向函数自身的变量,所以直接用它来调用匿名函数,在匿名函数中非常有用,但是在严格模式下会报错。
案例一:求1-100的和
// 常规写法
var sum = 0, n = 101;
for (var i = 0; i < n; i++) {
sum += i;
}
console.log(sum)
// 递归方法 函数自己调用自己
function fn(i) {
// 一定要有个出口
if (i == 1) {
return 1;
}
// return i + fn(i - 1)
return i + arguments.callee(i - 1)
}
var sum = fn(100)
console.log(sum)
案例二:求10的阶层
function fn(i) {
// 一定要有个出口
if (i == 1) {
return 1;
}
// return i *fn(i - 1)
return i * arguments.callee(i - 1)
}
var sum = fn(10)
console.log(sum)
网友评论