无法在 TypeScript class 中调用方法:对象不包含方法错误消息

Unable to call method in TypeScript class: Object does not contain method error message

我显然是愚蠢的但是,对于我的生活,我无法弄清楚为什么当用户单击 ResetDB 按钮时我的方法 ResetDB 不能调用方法 InitializeDB(调用 ResetDB 方法就好了从按钮点击,但从那里开始都是下坡):

var md: ManageCustOrderDatabase;

$(function () {
  md = new ManageCustOrderDatabase();

  $("#ResetDb").click(md.ResetDB);
});

class ManageCustOrderDatabase {
  public ResetDB() {
    alert("A");
    this.InitializeDB();
    alert("C");
  }

  public InitializeDB() {
    alert("q");        
  }
}

您的方法不正确 this 因为它不是像这样调用的:md.ResetDB() 而是稍后在不同的上下文中传递和执行的。

你可以这样做 (Function.prototype.bind):

$("#ResetDb").click(md.ResetDB.bind(md));

或(Arrow functions):

$("#ResetDb").click(() => md.ResetDB());