详解js的bind、call、apply
说明
虽然bind、call、apply都是js很基础的一块知识,但是我从未认真总结过这三者的区别。
由于公司后端是用的微服务架构,又没有中间层对接,导致前端这边非常难于处理接口数据。
于是我在项目初期封装了一套薄弱的api方法充当中间层的作用,还有为了让后端接口字段命名统一,也单独封装了一套方法用来统一每个微服务字段返回名。
但是,随着业务的增加,代码出现强耦合现象,到最后薄弱的中间层已经撑不住了,连代码的审视都变得很麻烦。
最后不得以重新设计这套api方法,幸好之前考虑周全留了个心眼,所以今天只花了一天时间就基本完成了。
最后的设计思路是不在api中间层使用restful风格的接口(当然后端接口还是不变),但是又为了api不重名,就选择让程序只加载当前页面api方法,也就是说如果用户如果当前操作的是A页面,那B页面的api方法是不会被载入的,这样也避免了首次加载程序的时候加载过多的api方法。
然后我在为每个api方法提供公共的数据处理方法的时候需要改变api方法的this指向,于是用到了call方法,所以有了此文。
后台=>通道
体验账号1:账号:“123456”。密码:“123456”
体验账号2:账号:“123123”。密码:“123123”