Кайл Симпсон (автор "You Don't Know JS") у себя в твиттере поделился своими наблюдениями про то, как иногда используются функции, содержащие
Если вы замечаете, что вам становятся нужны стрелочные функции для сохранения контекста и что вы чрезмерно используете
То его можно заменить паттерном "Модуль":
fu
#js #context
https://twitter.com/getify/status/1101491957916938240?s=21
this.Если вы замечаете, что вам становятся нужны стрелочные функции для сохранения контекста и что вы чрезмерно используете
.bind() или старый-добрый var self = this;, то всё это симптомы того, что вы боритесь с this. Например, если такой класс используется в вашей программе автономно:class Foo {
constructor(x) {
this.x = x;
this. bar = () => this.baz(this.x + 1);
this.baz = v => v * 2;
}
}
var a = new Foo(20);
btn.addEventListener("click",a. bar); // 42То его можно заменить паттерном "Модуль":
fu
nction Foo(x) {
return { bar, baz };
function bar() { return baz(x + 1); }
function baz(v) { return v * 2; }
}
var a = Foo(20);
btn.addEventListener("click",a. bar); // 42
Подобный избыточный код может возникать просто из-за привычек или эмоциональной привязанности к классам. Но всё же лучше всего использовать правильный инструмент, вместо того чтобы бороться с ним.#js #context
https://twitter.com/getify/status/1101491957916938240?s=21
Twitter
getify
The vast majority of uses I see of `this`-based functions in JS, they're not actually getting any benefit from opting into that mechanism. It's like many devs just adopt that style of coding out of habit, not out of neccessity.