arguments.callee的用法是甚么
arguments.callee是一个指向当前正在履行的函数的指针。它可以用来在一个函数内部递归调用本身,还是在匿名函数中援用函数本身。
在严格模式下,使用arguments.callee会致使毛病。因此,在现代的JavaScript中,推荐使用命名函数表达式来实现递归调用,而不是依赖arguments.callee。
以下是一个使用arguments.callee的递归调用示例:
```javascript
function factorial(n) {
if (n === 0) {
return 1;
} else {
return n * arguments.callee(n - 1);
}
}
console.log(factorial(5)); // 输出: 120
```
但是,使用命名函数表达式的示例更常见和推荐:
```javascript
var factorial = function factorial(n) {
if (n === 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
console.log(factorial(5)); // 输出: 120
```
TOP