两部分问题:
如何从对象方法获取function.caller
。
如何使用该值实际调用函数。
例:
foo = {
bar: function() {console.log(bar.caller);}
}
>> SyntaxError: function statement requires a name
范例2:
[bar.caller]();
吗?提前致谢
最佳答案
要获取呼叫者(如果存在),请使用以下命令:
var caller = arguments.callee.caller;
要使用它,您必须首先检查它是否存在:
if(caller)
caller();
例:
function foo(param){
if(param == 5) return console.log(param);
var caller = arguments.callee.caller;
if(caller)
caller(param + 1);
}
function bar(param){
foo(param);
}
foo(3); // won't log anything (no caller and param != 5)
bar(3); // will cause a recursion until param == 5 then logs it.
关于javascript - 使用`function.caller`,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41926159/