无法在 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());
我显然是愚蠢的但是,对于我的生活,我无法弄清楚为什么当用户单击 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());