如何在TypeScript中的回调中设置类的属性?

时间:2016-05-25 16:03:22

标签: jquery typescript callback closures ecmascript-5

以下是我要做的事情:

class User {

    name: string;

    userService: UserService; //service which fetches data from server

    successCallback(response: any) {
          this.name = string; 
    }

    setUser() {     
       var xhr: JQueryXHR = this.userService.fetchUser(); //Returns JQueryXHR object
       xhr.then(this.successCallback);
    }
}

现在,当我在User类的实例上调用setUser方法时:

var user: User = new User();
user.setUser(); 
this.name中的

successCallback评估为未定义

如何在回调函数中获取类的属性?

1 个答案:

答案 0 :(得分:1)

这是因为该方法是在window上下文中进行评估的。

包裹xhr.then来电:

xhr.then(response => {
    this.successCallback(response);
});

=>将确保this引用此类的实例。