Skip to content

Latest commit

 

History

History
57 lines (44 loc) · 1.08 KB

no-this-assignment.md

File metadata and controls

57 lines (44 loc) · 1.08 KB

Disallow assigning this to a variable

This rule is part of the recommended config.

this should be used directly. If you want a reference to this from a higher scope, consider using arrow function expression or Function#bind().

Fail

const foo = this;

setTimeout(function () {
	foo.bar();
}, 1000);
const foo = this;

class Bar {
	method() {
		foo.baz();
	}
}

new Bar().method();

Pass

setTimeout(() => {
	this.bar();
}, 1000);
setTimeout(function () {
	this.bar();
}.bind(this), 1000);
class Bar {
	constructor(fooInstance) {
		this.fooInstance = fooInstance;
	}
	method() {
		this.fooInstance.baz();
	}
}

new Bar(this).method();