如何让变量进入javascript函数?

时间:2011-07-28 13:28:15

标签: javascript

我在一个范围内有这个功能:

AjaxState.prototype.run_on_finish = function(callback){
    if (this.isRunning()){
        setTimeout('AjaxState.obj().run_on_finish('+callback+')', 250);
    }else{
        callback();
    }
}

我只是检查所有ajax是否已完成,然后在我调用回调后(如果所有ajax都已完成)... 但是,在其他方面我尝试使用这个函数调用如下:

//。obj()只是调用单例模式。

function foo(){
 var id = 2;
 AjaxState.obj().run_on_finish(function(){
  makeThings(id);
 });
}();

当我执行此操作时,我收到msg“id未定义”,因为我认为“run_on_finish”只是在全局范围内查找它,如果我从id中删除“var”,它可以工作......但是我不知道我想把它发送到全局,我想通过函数发送它,这可能吗?

1 个答案:

答案 0 :(得分:0)

试试这个:

function foo() {
var id = 2;
    AjaxState.obj().run_on_finish(
      (function(id) {
        var sub_id = id;
        return function() {
          makeThings(id);
        };
      })(id));
}

http://jsfiddle.net/thomas4g/cGCBh/6/