📅  最后修改于: 2023-12-03 14:52:21.149000             🧑  作者: Mango
在 JavaScript 中,我们经常需要找出当前函数的调用者函数。这个过程可能会让一些程序员感到困惑,但其实这是一个非常简单的操作,本文将教你如何实现。
为了找出调用者函数,我们可以使用 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
在严格模式下被禁用。
还有另一种方法可以找出调用者函数,比起 arguments.callee.caller
来说更加直接。我们可以利用 Error()
对象的 stack
属性来完成。下面是一个例子:
function outerFunction() {
innerFunction();
}
function innerFunction() {
console.log(new Error().stack);
}
outerFunction();
在这个例子中,innerFunction
调用了 Error().stack
并将结果打印到控制台上。当 outerFunction
调用 innerFunction
时,它就会被作为 Error().stack
的一部分打印出来。
需要注意的是,这种方法会返回一个字符串,需要进行相应的解析才能得到调用者函数的名称。
以上就是在 JavaScript 中找出调用者函数的两种方法。这两种方法都比较简单易懂,程序员可以根据自己的需求来选择适合自己的方法。