在jquery回调中调用时,TypeScript“this”作用域问题
我不确定在TypeScript中处理“this”范围的最佳方法。
这是我转换为TypeScript的代码中常见模式的示例:
class DemonstrateScopingProblems {
private status = "blah";
public run() {
alert(this.status);
}
}
var thisTest = new DemonstrateScopingProblems();
// works as expected, displays "blah":
thisTest.run();
// doesn't work; this is scoped to be the document so this.status is undefined:
$(document).ready(thisTest.run);
现在,我可以将呼叫改为......
$(document).ready(thisTest.run.bind(thisTest));
......确实有效。但它有点可怕。这意味着代码可以在某些情况下编译和工作正常,但如果我们忘记绑定范围,它将会中断。
我想在类中做一个方法,这样在使用类时我们不需要担心“this”的作用范围。
有什么建议?
千巷猫影
相关分类