变量在函数中调用时总是未定义的

在我提出问题之前,这是我的 Typescript 类:


export class Info {


    private currentId: number;


    private addToListButton: HTMLInputElement;


    constructor() {

        this.currentId = +(<HTMLInputElement> document.getElementById("Example")).value;


        this.addToListButton = <HTMLInputElement> document.getElementById("addToList");


        this.registerEvents();

    }


    private registerEvents(): void {

        this.addToListButton.addEventListener("click", (() => this.addToList()));

    }


    private addToList(): void {

        var data: SomeModel;

        data.id = this.currentId;


        // ajax stuff

    }

}

我的问题是当我想获得模型的“currentId”时,它总是未定义的。我可以在同一个函数中使用另一个变量“addToListButton”而不会出现问题。


我看不出那里有什么问题。


白衣非少年
浏览 197回答 2
2回答

拉丁的传说

在addToList()方法中,关键字this指的是事件上下文而不是Info对象上下文。要以这种方式使用,您需要将方法绑定到类。将此添加到构造函数:this.addToList&nbsp;=&nbsp;this.addToList.bind(this);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript