30 lines
985 B
JavaScript
30 lines
985 B
JavaScript
//// [collisionThisExpressionAndNameResolution.ts]
|
|
var console : {
|
|
log(message: any);
|
|
}
|
|
class Foo {
|
|
x() {
|
|
var _this = 10; // Local var. No this capture in x(), so no conflict.
|
|
function inner() {
|
|
console.log(_this); // Error as this doesnt not resolve to user defined _this
|
|
return x => this; // New scope. So should inject new _this capture into function inner
|
|
}
|
|
}
|
|
}
|
|
|
|
//// [collisionThisExpressionAndNameResolution.js]
|
|
var console;
|
|
var Foo = (function () {
|
|
function Foo() {
|
|
}
|
|
Foo.prototype.x = function () {
|
|
var _this = 10; // Local var. No this capture in x(), so no conflict.
|
|
function inner() {
|
|
var _this = this;
|
|
console.log(_this); // Error as this doesnt not resolve to user defined _this
|
|
return function (x) { return _this; }; // New scope. So should inject new _this capture into function inner
|
|
}
|
|
};
|
|
return Foo;
|
|
})();
|