如何使用Javascript获取最后执行的函数名称

时间:2014-02-27 09:06:32

标签: javascript

我正在尝试使用JavaScript获取最后执行的函数的名称,以下代码对我有用,但是需要找到任何其他可用的方法吗?请帮帮我:

var fname;
function fn()
{
        fname="fn()";
} 

function fn1()
{
       fname="fn1()";
}

function fexecute()
{
       setTimeout(fname, 0);
}

我想最终执行函数名称,当我调用fexecute()函数时,调用最后执行的函数。

2 个答案:

答案 0 :(得分:2)

如果要执行字符串中的函数名称,除了将字符串传递给setTimeout()之外,还必须执行一些操作。最好的选择是直接保存对函数的引用而不是字符串名称。

var lastFunc;
function fn()
{
        lastFunc=fn;
} 

function fn1()
{
       lastFunc=fn1;
}

function fexecute()
{
       // execute previous function after a short timer
       setTimeout(lastFunc, 0);
}

如果您不需要setTimeout(),那么您可以执行最后一个功能:

function fexecute()
{
       // execute previous function
       lastFunc();
}

答案 1 :(得分:2)

只需使用arguments.callee.name

即可
var fname;

function anyFunction () {
    fname = arguments.callee.name;
}

function anyOtherFunction () {
    fname = arguments.callee.name;
}

正常调用函数,例如anyFunction();anyOtherFunction();