我正在尝试使用JavaScript获取最后执行的函数的名称,以下代码对我有用,但是需要找到任何其他可用的方法吗?请帮帮我:
var fname;
function fn()
{
fname="fn()";
}
function fn1()
{
fname="fn1()";
}
function fexecute()
{
setTimeout(fname, 0);
}
我想最终执行函数名称,当我调用fexecute()函数时,调用最后执行的函数。
答案 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();