Angular 2"this"无法在嵌套函数中访问全局变量

Dan*_*eee 3 javascript function angularjs typescript angular

我对Angular 2很新.想问一下如何在startTimer()中访问"task_title".我从console.log()得到的所有内容都是未定义的.我相信"this"指向函数本身,所以我无法获得"task_title"的值.

无论如何我可以在嵌套函数中访问Typescript中的全局变量吗?

export class DashboardComponent {

    task_title: string;

    myTimer = setTimeout(this.startTimer, 2000);

    updateTask(event: any){
        clearTimeout(this.myTimer);
        this.task_title = event.target.value;
        this.myTimer = setTimeout(this.startTimer, 2000);
    }

    startTimer() {
        console.log(this.task_title);
        this.myTimer = setTimeout(this.startTimer, 2000);
    };
}
Run Code Online (Sandbox Code Playgroud)

结果:未定义.

Gün*_*uer 11

使用箭头功能或.bind(this)保留范围this

myTimer = setTimeout(this.startTimer.bind(this), 2000);
myTimer = setTimeout(() => this.startTimer(), 2000);
Run Code Online (Sandbox Code Playgroud)