Полезно ли использовать объектные литералы и связывать все методы с использованием lodash? - PullRequest
0 голосов
/ 18 октября 2018

Я использовал для создания своих служб и утилит, как это:

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){}}));

Каково наилучшее решение или практика, позволяющая избежать этой проблемы или решить ее наиболее эффективным способом и с минимальными усилиями.Большое спасибо!

...