如何动态获取执行另一个功能的功能名称?

时间:2018-10-17 16:43:42

标签: javascript function parameters arguments

我需要找到一种动态的方式来知道哪个函数(大于2个)执行了另一个特定函数,在哪个函数中将返回调用者函数。

我目前有以下代码,该代码不起作用:

function Hello() {
  _alert("caller is " + Hello().caller);
}

Bye();
function Bye() {
  Hello();
}

错误消息如下: ReferenceError:未定义Hello

如果此方法不起作用,也许可以通过“参数”来实现?

目标函数上可以有多个执行器功能,该功能在执行时提供执行器功能名称。

2 个答案:

答案 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();
}