Reputation: 155
I created a "anaonymous" class based on this: Typescript anonymous class
But I don't know how to access the outer scope members. Here is an example code:
class BaseCounter {
counter = 1;
count() {
console.log(++this.counter);
}
getDoubleCounter() {
return new class DoubleCounter extends BaseCounter {
count() {
// In Java, we can access the outer scope counter by ClassName.this like this
// BaseCounter.this.counter += 2
// console.log(BaseCounter.this.counter);
}
}();
}
Upvotes: 5
Views: 791
Reputation: 155
Actually I can assign parent this to an variable like this
class BaseCounter {
counter = 1;
count() {
console.log(++this.counter);
}
getDoubleCounter() {
const parentThis = this;
return new class DoubleCounter extends BaseCounter {
count() {
parentThis.counter += 2
console.log(parentThis.counter);
}
}();
}
Upvotes: 5