可能重复:
你如何找出在JavaScript中调用函数?
我怎样才能找出一个javascript函数是调用函数(调用堆栈前)?
我想,以确定是否前者调用的函数是在onbeforeunload事件一个__doPostBack。
可能重复:
你如何找出在JavaScript中调用函数?
我怎样才能找出一个javascript函数是调用函数(调用堆栈前)?
我想,以确定是否前者调用的函数是在onbeforeunload事件一个__doPostBack。
每个函数都有一个caller
定义的属性。
从https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Function/caller :
function myFunc() {
if (myFunc.caller == null) {
return ("The function was called from the top!");
} else
return ("This function's caller was " + myFunc.caller);
}
}
该Function.caller
属性不是ECMA3标准的一部分,但它在所有主要浏览器,包括IE和Firefox中实现。
如果您使用的是匿名函数,你仍然可以访问caller
通过属性arguments.calee
属性:
function() {
if (arguments.callee.caller == null) {
return ("The function was called from the top!");
} else
return ("This function's caller was " + arguments.callee.caller);
}
}
请注意,此代码访问当前函数,然后引用相同的非标准caller
就可以了财产。 这是使用过时的不同arguments.caller
直接财产,这是不是在一些现代浏览器中实现 。
在Cr-48的Chrome操作系统,arguments.callee.caller给整个函数体作为一个字符串,并重命名为匿名电话的功能。