Как стать автором
Обновить

Комментарии 2

Если неявный nullability это ошибка на миллиард долларов, то контекст функций в JS это ошибка где-то на 100000 баксов. Это же нисколько не нормально, что сохранив ссылку на, казалось бы, метод объекта, на самом деле мы получаем ссылку на unbound функцию. Вот пример для иллюстрации:

const arr = [1, 2, 3];
arr.map(v => v * v); // ок

const arrMap = arr.map;
arrMap(v => v * v); // не ок: TypeError: can't convert undefined to object

Благо завезли стрелочные функции которые хоть как-то спасают ситуацию.

Какая-то проблема из прошлого, если честно.

Потеря контекста во вложенных функциях окончательно решена стрелочными функциями, и в 2025м году нет никакого смысла рассматривать что-то ещё.

Потеря контекста при сохранении метода где-то ещё решается ещё проще - "не делайте так!". Это ответственность внешнего кода - следить с каким контекстом вызываются методы.

Комбинированный вариант, когда метод используется внутри класса, решается либо опять-таки стрелочными функциями, либо декоратором (благо они наконец-то уже в stage 3).

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации