Van egy függvény egy tárgy, mint ez:
connect(callback?: (connected: bool) => void) {
$.ajax(this.url + /connect, $.extend(true, {}, this.ajaxSettings, {
success: (data) => {
this.errorChecker(data, (data) => {
if (callback != null) {
callback(data);
}
});
},
timeout: this.timeout,
error: () => {
if (callback != null) {
callback(false);
}
}
}));
}
A géppel fordító úgy, hogy ez és gyárt:
VAS.prototype.connect = function (callback) {
$.ajax(this.url + /connect, $.extend(true, {
}, this.ajaxSettings, {
success: function (data) {
_this.errorChecker(data, function (data) {
if(callback != null) {
callback(data);
}
});
},
timeout: this.timeout,
error: function () {
if(callback != null) {
callback(false);
}
}
}));
};
Megjegyzés ezt a sort a js:
_this.errorChecker(data, function (data)
A fordító helyesen észrevette az általam használt => operátor és arra a következtetésre jutott, hogy thisaz én eredeti géppel utalni kell a szülő objektum, és nem bármi thistörténik, hogy amikor a siker callback valójában hívott. De valamilyen oknál fogva a fordító elfelejtette, hogy tartalmazza a mágikus vonal:
var _this = this;
Elején a funkciót. Ez egy bug? Vagy ez a design? Ha csak figyelmen kívül hagyja a _this / ez a dolog teljesen, én csak mondom én csinálom rosszul, de ez megy félúton van, ami elgondolkodtat, valami nincs rendben.
Frissítés : furcsa ez úgy tűnik, hogy a probléma a fordító a Visual Studio, ha lemásolják az azonos kódot a játszótér működik, mint várták.













