2014-10-19 71 views
0

這是我正在嘗試做的,但我得到一個錯誤,我無法綁定到未定義,我假設因爲我在一個匿名函數。我需要訪問AJAX調用的方法(getAndSayHi)。從jQuery AJAX完整函數中調用包裝函數

var Parent() = new Function() { 
    this.sayHi = function (name) { 
     console.log("hello " + name); 
    } 
    this.getAndSayHi = function() { 
     $.ajax({ 
      .... 
      success: function(data) { 
       this.sayHi.bind(this, data); 
      } 
     }); 
    } 

我該如何實現這樣的目標?先謝謝了。

回答

1

嘗試

this.getAndSayHi = function() { 
    var parent = this; 
    $.ajax({ 
     .... 
     success: function(data) { 
      parent.sayHi.bind(this, data); 
     } 
    }); 
} 
+3

你或許可以解釋爲什麼:'this'總是指當前對象實例。在成功函數中,'this'引用了jQuery對象,而不是你的'Parent'對象。因此,被調用的方法是不確定的。 – 2014-10-19 23:18:10