首页 > 代码库 > 奇舞js笔记——*——过程抽象,高阶函数,面向函数编程
奇舞js笔记——*——过程抽象,高阶函数,面向函数编程
注:
1.学习视频地址
2.ppt地址
3.个人感想:
是我hin厉害的师父推荐我看的月影大大的视频,感觉对于我这个小白来说,真的是一遍又一遍的刷新知识面。我觉得像月影大大这种大佬的思路,我接触之后真的是受益匪浅。
所以我总结出来不仅是自己记笔记,也是想分享给想要成为真正的前端“工程师”的前端er。
真的很珍惜这种知识面被刷新的感觉——越学习,越感到自己无知,共勉。
摘要
1.数据抽象是针对数据处理的;
2.过程抽象(例如高阶函数)是针对函数处理的;
3.用高阶函数可以对已有API的接口进行修改,而不影响函数内部内容。
目录
一个问题:修改已有API中的参数顺序
1.直接重写
2.新函数调用
3.用高阶函数
4.总结
正文
问题:要更改一个API中的参数顺序:
1.直接重写
function setColor2(el,color){ el.style.color=color;}
缺点:
如果api很复杂,重写成本很高
而且名字不好起
2.新函数调用
function setColor2(el,color){ setColor(color,el);}
不用管API内部逻辑,但依然不好起名和管理
3.创建高阶函数
能把所有函数的参数顺序颠倒
function reverseArgs(fn){ return function(...args){ args=args.reverse(); return fn.apply(this,args) }}setColor=reverseArgs(setColor);
不去修改别人代码,不关心具体函数,只抽象过程
复用性很高
扩展性很高,例如:
用timeout使函数在1000毫秒之后执行,用bind在函数执行后500毫秒执行输出语句
(更改了API的更多接口信息)
总结:
1.数据抽象是针对数据处理的;
2.过程抽象(例如高阶函数)是针对函数处理的;
3.用高阶函数可以对已有API的接口进行修改,而不影响函数内部内容。
奇舞js笔记——*——过程抽象,高阶函数,面向函数编程
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。