arguments.callee是一个指向当前正在执行的函数的指针。它可以用来在一个函数内部递归调用自身,或者在匿名函数中引用函数自身。
在严格模式下,使用arguments.callee会导致错误。因此,在现代的JavaScript中,推荐使用命名函数表达式来实现递归调用,而不是依赖arguments.callee。
以下是一个使用arguments.callee的递归调用示例:
function factorial(n) {
if (n === 0) {
return 1;
} else {
return n * arguments.callee(n - 1);
}
}
console.log(factorial(5)); // 输出: 120
然而,使用命名函数表达式的示例更常见和推荐:
var factorial = function factorial(n) {
if (n === 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
console.log(factorial(5)); // 输出: 120