I need to create a class, but later add a method to the class, and that method needs access to properties of the class. I've tried binding this, but it is undefined when the method runs.
class TestClass {
constructor(callback) {
this.name = "Test";
this.doSomething = callback.bind(this); // WHY DOESN'T THIS WORK?
}
}
const TestInstance = new TestClass(
() => {
console.log(`${this.name} is doing something!`);
},
);
TestInstance.doSomething(); // this is undefined
Am I doing it wrong or is this not possible?
I'm aware I could create a new class that extends the first, and call super in the constructor to access the parent's this, but for other reasons I'd prefer not to create child classes.