私はこの Typescript コードを持っています:
constructor($triggerHref: JQuery) {
// stuff...
var _this = this;
$(document).on("click",$triggerHref.selector,e=>{
e.preventDefault();
var target = $(e.srcElement).attr("data-pcc-sort-trigger");
if (target == _this.active)
_this.load(target, !_this.isDescending);
else _this.load(target, false);
});
}
行を削除してイベント ハンドラー内var _this = this;で使用するthisと、生成された js コードはほぼ同じように見えますが (いずれにせよ _this が生成されます)、何らかの理由this.activeでthis.load()未定義です。
TS のスコーピングについての私の理解では、メソッドは親から()=>{}保持され、メソッドのみが通常の JS メソッドのように機能するというものでした。thisfunction(){}
では、なぜこれがうまくいかないのですか?