2014-10-19 73 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