TGViewer
Defront — про фронтенд-разработку и не только Defront — про фронтенд-разработку и не только @defront · 5.03K subscribers
Post #43 518
Кайл Симпсон (автор "You Don't Know JS") у себя в твиттере поделился своими наблюдениями про то, как иногда используются функции, содержащие 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.
More from @defront
  1. Jan 7, 2024Channel name was changed to «Defront — про фронтенд-разработку и не только»
  2. Feb 24, 2022Про войну в Украине Шлю лучи поддержки братьям и сёстрам украинцам. В моём окружении нет н…
  3. Feb 23, 2022Qwik — возобновляемый JavaScript-фреймворк Райан Карниато поделился своими мыслями после р…
  4. Feb 22, 2022Обработка ошибок с помощью reportError Стэфан Джудис рассказал про малоизвестный метод для…
  5. Feb 21, 2022Выбор библиотеки по её размеру Владимир Клепов рассказал про подводные камни выбора библио…
  6. Feb 10, 2022Time-travel debugging в Svelte Сэм Ван Тассел рассказал про DeLorian — новый инструмент дл…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →