为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

白衣非少年 2021-06-11 09:42:31
在我提出问题之前,这是我的 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”而不会出现问题。我看不出那里有什么问题。
查看完整描述

2 回答

?
拉丁的传说

TA贡献1789条经验 获得超8个赞

addToList()方法中,关键字this指的是事件上下文而不是Info对象上下文。

要以这种方式使用,您需要将方法绑定到类。将此添加到构造函数:

this.addToList = this.addToList.bind(this);


查看完整回答
反对 回复 2021-06-18
  • 2 回答
  • 0 关注
  • 196 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信