如何使变量进入javascript函数内部?
我在一个范围内得到了这个函数:如何使变量进入javascript函数内部?,javascript,Javascript,我在一个范围内得到了这个函数: AjaxState.prototype.run_on_finish = function(callback){ if (this.isRunning()){ setTimeout('AjaxState.obj().run_on_finish('+callback+')', 250); }else{ callback(); } } 我只是检查是否所有ajax都完成了,然后在调用回调之后(如果所有ajax都完成
AjaxState.prototype.run_on_finish = function(callback){
if (this.isRunning()){
setTimeout('AjaxState.obj().run_on_finish('+callback+')', 250);
}else{
callback();
}
}
我只是检查是否所有ajax都完成了,然后在调用回调之后(如果所有ajax都完成了)。。。
但是,在另一点上,我尝试使用如下函数调用:
//.obj()只是调用singleton模式
function foo(){
var id = 2;
AjaxState.obj().run_on_finish(function(){
makeThings(id);
});
}();
当我执行此操作时,我收到消息“id未定义”,因为我认为“run_on_finish”只是在全局范围内查找它,如果我从id中删除“var”,它会工作。。。但我不想让它成为全局的,我想通过函数发送它,这可能吗?试试这个:
function foo() {
var id = 2;
AjaxState.obj().run_on_finish(
(function(id) {
var sub_id = id;
return function() {
makeThings(id);
};
})(id));
}
搞笑的问题标题
:)
整个完成后运行的事情毫无意义。为什么不使用基于事件的回调,即钩住readystatechange
事件?您的示例必须不完整。提供真实的代码。在您给出的示例中,id
被有效地关闭到run\u on\u finish
回调中。这个额外关闭的目的是什么?@katspaugh将id从父函数foo中获取到传递到run\u on\u finish
的函数中。“我做错了吗?”KATSPOW考虑加入你自己的答案: