Dette er en veldig contrived eksempel, men la oss anta at vi oppretter en variabel _thissted i en klasse funksjon.
class Person {
constructor (public name : string) {}
changeName(name) {
var _this = {};
(() => {
this.name = name;
})();
}
}
Dette vil ikke fungere som forventet når vi kaller changeNamefunksjonen fordi den relevante delen av den kompilerte koden ser slik ut:
var _this = this;
var _this = {};
(function () {
_this.name = name;
})();
Dette er dårlig Javascript: vi har to varerklæringer overskriving av hverandre. Den _thiser laget av kompilatoren blir overskrevet av min _this.
Så vidt jeg kan se, er dette problemet ikke spesifisert i Loggfila spec.
Hvorfor skulle de komme i konflikt? Kan ikke kompilatoren oppdage hvis jeg har opprettet en variabel kalt _thisog navngi den automatisk genererte en noe annet, liker _this2å holde mine variabler og kompilatoren generert seg fra å tråkke på hverandre?













