2010-05-09 45 views
0
MyObj = 
{ 
    ajax: null, 
    init: function() 
    { 
     this.ajax = Cc["@mozilla.org/xmlextras/xmlhttprequest;1"] 
      .createInstance(); 
     this.ajax.onload = function() 
     { 
      return function() {this.onload.apply(this, [null]);} 
     }; 
    }, 
    onload: function() 
    { 
     Reader.log("I really hope I can use `this.ajax` here"); 
    } 
} 

是不是正確的方式來綁定onload到MyObj?出於某種原因onload從未被調用。但是,如果我避免綁定,只是把this.ajax.onload = this.onload然後onload調用。如何獲得約束力的工作?javascript綁定

回答

1

,我會回答自己...

我應該叫功能

var me = this; 

this.ajax.onload = (function() 
     { 
      return function() {me.onload.apply(me, [null]);} 
     })(); 
+1

爲什麼額外的功能封裝在那裏? this.ajax.onload = function(){me.onload.apply(me,[null]);} – Joshua 2010-05-09 03:15:52

+0

@ Joshua:你是對的,那是不必要的,它甚至沒有它。 – Pablo 2010-05-09 03:18:05