什么时候'这个'可用?

时间:2014-03-28 08:03:18

标签: javascript jquery

我有一个JS对象,在伪代码中这样做:

function myObj {
  // in constructor 
  ... initialise vars
  ... call $.Ajax to fetch view from server

    function AjaxCallBack() {
       // load the DOM with the HTML result
       $('#dialog').html(ajax.result);
       // try to register a change handler
       $("#dialog :input").change(this.formChangeEvent);
    }

    this.formChangeEvent = function(){
        ... do stuff
    }
}

问题是在AjaxCallBack中,'这个'不是myObj对象,而是'窗口'对象,无法解决问题

我能够解决这个问题的唯一方法是让对象的接收者回调到myObj的单独函数并注册事件

objInstance = new myObj();
objInstance.registerEventHandler();

我尝试了其他一些事情,但我显然遗漏了一些基本的东西。

2 个答案:

答案 0 :(得分:1)

如果我理解了您的问题,那么您可以将其保存到任何变量,例如var thisObj=$(this)。现在您可以使用thisObj.formChangeEvent。希望这会有所帮助。

答案 1 :(得分:0)

试试这个:

function myObj {
  // in constructor 
  ... initialise vars
  ... call $.Ajax to fetch view from server

    var oThis = this; // oThis is object this which points to myObj
    function AjaxCallBack() {
       // load the DOM with the HTML result
       $('#dialog').html(ajax.result);
       // try to register a change handler
       $("#dialog :input").change(oThis.formChangeEvent);
    }

    this.formChangeEvent = function(){
        ... do stuff
    }
}

它会起作用。