Ez egy nagyon kitalált példa, de tegyük fel, létrehozunk egy változót _thisvalahol egy osztályban funkciót.
class Person {
constructor (public name : string) {}
changeName(name) {
var _this = {};
(() => {
this.name = name;
})();
}
}
Ez nem a vártnak megfelelően, ha hívjuk a changeNamefunkciót, mert a vonatkozó része a lefordított kód így néz ki:
var _this = this;
var _this = {};
(function () {
_this.name = name;
})();
Ez rossz Javascript: van két varnyilatkozatok egymást írják felül. A _thislétrehozott, a fordító által felülírása az én _this.
Amennyire én látom, ez a viselkedés nem meghatározott géppel spec.
Miért ellentétesek? Nem lehet a fordító érzékeli, ha már létrehoztunk egy változót nevű _thisés nevezze az automatikusan generált egy valami mást, szeretnék _this2tartani a változók és a fordító által generált azok is a taposás egymástól?













