Javascript 使用「;这";在typescript类中
我正在对与dataContext相关的typescripts类进行重构。问题是昨天我花了很多时间试图弄明白为什么我没有从我的新datacontext中得到微风。最后我得到了解决方案,它与“这个”的范围有关。 “this”的错误用法示例: 现在,相同的代码工作正常,但使用“that”作为临时变量:Javascript 使用「;这";在typescript类中,javascript,typescript,Javascript,Typescript,我正在对与dataContext相关的typescripts类进行重构。问题是昨天我花了很多时间试图弄明白为什么我没有从我的新datacontext中得到微风。最后我得到了解决方案,它与“这个”的范围有关。 “this”的错误用法示例: 现在,相同的代码工作正常,但使用“that”作为临时变量: public getSomething(){ var that=this; return this.manager.executeQuery(query) .then(funct
public getSomething(){
var that=this;
return this.manager.executeQuery(query)
.then(function (data) {
that.log('get something is complete');
}
}
如果您在abore中看到,第二段代码工作正常,但是我必须对类中的每个方法重复这个过程。现在我的问题是:
如何在类级别创建“that”变量?可能吗
我尝试了下面的代码,但我得到了一个编译错误:“找不到符号‘that’。”
你知道如何把这个新变量“that”放在类级别吗?谢谢大家! TypeScript有一个方便的快捷方式来解决这个问题,叫做“胖箭头语法”
=>
如果您使用以下功能,它应该适用于您:
getSomething(){
return this.manager.executeQuery(query)
.then((data) => {
this.log('This *will* now be logged :)');
});
}
快速免责声明-我不确定您的
查询
来自哪里-它没有传递到getSomething
方法中。如果它是一个类属性,请使用this.query
是一个很好的readbind,因此技巧谢谢@SteveFenton给了我一个简短明确的答案!
export class eventDataContext extends dataContextBase.dataContextBase {
public that;
constructor() {
super();
that = this;
...
}
}
getSomething(){
return this.manager.executeQuery(query)
.then((data) => {
this.log('This *will* now be logged :)');
});
}