码迷,mamicode.com
首页 > Web开发 > 详细

奇舞js笔记——*——过程抽象,高阶函数,面向函数编程

时间:2017-07-10 17:55:52      阅读:524      评论:0      收藏:0      [点我收藏+]

标签:etc   问题   nbsp   dash   app   blank   png   处理   video   

 注:


 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笔记——*——过程抽象,高阶函数,面向函数编程

标签:etc   问题   nbsp   dash   app   blank   png   处理   video   

原文地址:http://www.cnblogs.com/Nirvana-zsy/p/7146795.html

(1)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!