好吧,您可以使用arguments.callee
它来调用它,但这是一个坏主意,会影响性能,并且在严格模式下无效。
您引用的是有效的 JavaScript,如果您旁边有一个函数,则不应调用check
另一个函数。check
可悲的是,它会在 IE8 和更早版本中出现,因为它们完全错误地将名称泄漏check
到周围范围(命名函数表达式不会像函数声明那样将函数名称添加到周围范围 - 除了在 IE8 和更早版本上 [这还不是全部他们弄错了])。
所以解决方案是使用匿名函数来隐藏一个命名的:
(function() {
// A check function
check();
function check () {
if (typeof foo !='undefined') {
// do stuff
} else {
console.log("Failed to load, trying again");
setTimeout(function(){ check(); }, 10);
}
}
})();
(function() {
// A complete different one
check();
function check () {
if (typeof foo !='undefined') {
// do other stuff
} else {
console.log("Failed to load, trying again");
setTimeout(function(){ check(); }, 10);
}
}
})();