Я использовал для создания своих служб и утилит, как это:
const StudentsService = Object.freeze({f1(a){this.f2(a)},f2(b){}});
И дальнейшее использование выглядит так:
const students = StudentsService.f1(respFromApi);
Но, как оказалось, я могу столкнуться с некоторымипроблемы с использованием ключевого слова this
при текущем подходе.Например:
f3().then(StudentsService.f1);
И функция больше не может ссылаться на контекст StudentsService, и я получил неопределенное значение.Я знаю, что мою проблему можно исправить с помощью bind / apply / call.Также я могу сделать что-то подобное
f3().then(data => StudentsService.f1(data))
И контекст не будет потерян.Но у меня такое ощущение, что я что-то не так делаю.Я боюсь забыть добавить исправление в один момент, и мое приложение зависнет.
Так как я использую lodash Мне просто интересно добавить _.bindAll, и все будетвыглядеть как
const StudentsService = Object.freeze(_.bindAll({f1(a){this.f2(a)},f2(b){}}));
Каково наилучшее решение или практика, позволяющая избежать этой проблемы или решить ее наиболее эффективным способом и с минимальными усилиями.Большое спасибо!