租用问题

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

< 返回租用问题列表

js中callee和caller有什么不同,js caller

发布时间:2023-09-25 08:18:01

js中callee和caller有甚么不同

在JavaScript中,`callee`和`caller`是两个特殊的属性,用于获得当前函数的援用。它们的不同以下:
1. `callee`属性:`callee`属性是一个指向当前正在履行的函数的指针。它可以在一个函数内部使用,用于递归调用本身还是在匿名函数中援用本身。这个属性在ES5的严格模式下被废弃,不推荐使用。
```javascript
function foo() {
console.log(arguments.callee); // 指向函数foo本身
}
foo(); // 输出: function foo()
```
2. `caller`属性:`caller`属性是一个指向调用当前函数的函数的援用。它可以用于获得调用当前函数的函数的信息,如调用者的名称。这个属性在ES5的严格模式下被废弃,不推荐使用。
```javascript
function foo() {
console.log(foo.caller); // 指向调用foo函数的函数
}
function bar() {
foo();
}
bar(); // 输出: function bar()
```
需要注意的是,由于`callee`和`caller`属性已被废弃,不推荐使用,因此在现代的JavaScript开发中,应当尽可能避免使用这两个属性,并采取其他方式实现相应的功能。