新闻资讯

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻资讯列表

arguments.callee的用法

发布时间:2023-09-15 12:30:51

arguments.callee的用法

在JavaScript中,arguments.callee是一个指向当前履行的函数的援用。
arguments是一个类数组对象,它包括传递给函数的所有参数。callee是arguments对象的一个属性,它指向当前正在履行的函数本身。
arguments.callee可以用于递归调用匿名函数。例如:
```javascript
var factorial = function(n) {
if (n === 0) {
return 1;
} else {
return n * arguments.callee(n - 1);
}
};
console.log(factorial(5)); // 输出 120
```
在上面的例子中,使用arguments.callee实现了一个递归调用的阶乘函数。函数在每次调用时本身作为参数传递给arguments.callee,直到n为0时停止递归。
需要注意的是,严格模式下制止使用arguments.callee。在严格模式下,使用arguments.callee会抛出一个毛病。因此,如果需要递归调用函数,最好将函数命名,然后直接使用函数名进行递归调用。例如:
```javascript
var factorial = function calculate(n) {
if (n === 0) {
return 1;
} else {
return n * calculate(n - 1);
}
};
console.log(factorial(5)); // 输出 120
```