📜  如何在 JavaScript 中找出调用者函数?(1)

📅  最后修改于: 2023-12-03 14:52:21.149000             🧑  作者: Mango

如何在 JavaScript 中找出调用者函数?

在 JavaScript 中,我们经常需要找出当前函数的调用者函数。这个过程可能会让一些程序员感到困惑,但其实这是一个非常简单的操作,本文将教你如何实现。

方法一:arguments.callee.caller

为了找出调用者函数,我们可以使用 arguments.callee.caller 属性,它可以返回当前函数的调用者函数。下面是一个示例:

function outerFunction() {
  innerFunction();
}

function innerFunction() {
  console.log(arguments.callee.caller);
}

outerFunction();

在上面的例子中,innerFunction 函数调用了 arguments.callee.caller,并将返回值打印到控制台上。当 outerFunction 调用 innerFunction 时,它就会被作为 arguments.callee.caller 的返回值打印出来。

需要注意的是,arguments.callee.caller 在严格模式下被禁用。

方法二:Error().stack

还有另一种方法可以找出调用者函数,比起 arguments.callee.caller 来说更加直接。我们可以利用 Error() 对象的 stack 属性来完成。下面是一个例子:

function outerFunction() {
  innerFunction();
}

function innerFunction() {
  console.log(new Error().stack);
}

outerFunction();

在这个例子中,innerFunction 调用了 Error().stack 并将结果打印到控制台上。当 outerFunction 调用 innerFunction 时,它就会被作为 Error().stack 的一部分打印出来。

需要注意的是,这种方法会返回一个字符串,需要进行相应的解析才能得到调用者函数的名称。

结论

以上就是在 JavaScript 中找出调用者函数的两种方法。这两种方法都比较简单易懂,程序员可以根据自己的需求来选择适合自己的方法。