我有以下代码。它运行一个简单的函数,并且需要运行相同的函数。 (递归)
var Skit = function(callback) {
validSkit(Math.random(),function(skit,data){
// Ajax callback
if (skit == true) callback(data); // Works if skit is found
else if (skit == false) Skit(callback); // Call Skit again [not working]
});
}(function(skit){
console.log("Valid skit found!");
});
我得到
Skit is undefined!
我知道我可以进行真正的简单function Skit()..
调用。但这不是我的要求。这可能吗? 最佳答案
您应该在此处使用命名函数表达式:
(function Skit(callback) {
validSkit(Math.random(),function(skit,data){
// Ajax callback
if (skit == true) callback(data); // Works if skit is found
else if (skit == false) Skit(callback); // Call Skit again [not working]
});
})(function(skit){
console.log("Valid skit found!");
});
请注意,
Skit
名称不会在外部范围内泄漏,并且可以在堆栈跟踪中用于调试。