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