我需要找到一种动态的方式来知道哪个函数(大于2个)执行了另一个特定函数,在哪个函数中将返回调用者函数。
我目前有以下代码,该代码不起作用:
function Hello() {
_alert("caller is " + Hello().caller);
}
Bye();
function Bye() {
Hello();
}
错误消息如下: ReferenceError:未定义Hello
如果此方法不起作用,也许可以通过“参数”来实现?
目标函数上可以有多个执行器功能,该功能在执行时提供执行器功能名称。
答案 0 :(得分:1)
曾经有// Second script.
while ($line = trim(fgets(STDIN))) {
print "some sort of output to report how I'm doing";
}
和arguments.callee
(您可以在Google上搜索它们),但是现在它们已被弃用,如今无法知道呼叫者。您应该执行以下操作:
arguments.caller
答案 1 :(得分:1)
使用Hello
而不调用它:
function Hello() {
alert("caller is " + Hello.caller);
}
Bye();
function Bye() {
Hello();
}
但是请记住,此代码仅在非严格模式下有效。这样的代码将引发错误:
'use strict';
function Hello() {
alert("caller is " + Hello.caller);
}
Bye();
function Bye() {
Hello();
}