Skip to content

Latest commit

 

History

History
52 lines (40 loc) · 853 Bytes

no-this-assignment.md

File metadata and controls

52 lines (40 loc) · 853 Bytes

Disallow assigning this to a variable

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();