📝 Disallow assigning this to a variable.
💼 This rule is enabled in the following configs: ✅ recommended, ☑️ unopinionated.
this should be used directly. If you want a reference to this from a higher scope, consider using arrow function expression or Function#bind().
// ❌
const foo = this;
setTimeout(function () {
foo.bar();
}, 1000);
// ✅
setTimeout(() => {
this.bar();
}, 1000);
// ✅
setTimeout(function () {
this.bar();
}.bind(this), 1000);// ❌
const foo = this;
class Bar {
method() {
foo.baz();
}
}
new Bar().method();
// ✅
class Bar {
constructor(fooInstance) {
this.fooInstance = fooInstance;
}
method() {
this.fooInstance.baz();
}
}
new Bar(this).method();