我以前是这样创建服务和实用程序的:
const StudentsService = Object.freeze({f1(a){this.f2(a)},f2(b){}});
进一步的用法是:
const students = StudentsService.f1(respFromApi);
但是事实证明,在当前方法下,使用关键字this
可能会遇到一些问题。例如:
f3().then(StudentsService.f1);
该函数不再可以引用StudentsService上下文,而我不确定。我知道我的问题可以通过绑定/应用/调用解决。我也可以做类似的事情
f3().then(data => StudentsService.f1(data))
上下文也不会丢失。 但是我感觉自己做错了。恐怕忘记马上添加一个修复程序,我的应用程序将崩溃。
因此,由于我使用的是 lodash ,我只是想添加_.bindAll,所以一切看起来都像
const StudentsService = Object.freeze(_.bindAll({f1(a){this.f2(a)},f2(b){}}));
什么是避免此问题或以最少的努力最有效的方式解决此问题的最佳解决方案或做法?非常感谢!