体验javascript之美第九课-函数式编程和angular过滤器完成道理

JS函数式编程

我在网上看了许多关于javascript的函数式编程的教程,不过我以为许多不是照抄的或许就是故弄玄虚。js生长到本日愈来愈往瑜伽圈的民风生长了,拿腔拿调装13不好好说话,彷佛你讲的东西他人听懂了就是你程度不可似得。人人上过瑜伽课肯定有体验,比如说一个简朴行动,吸气手臂往上,他非这么说:

随着下一次吸气,将你的双臂经过体侧温和的舒展向天空的方向,感觉你和宇宙能量的充足衔接。

你至于么!说吸气手臂往上!不就完了么。

所以呢JS函数编程我能用一个字说清楚,就不必两个字儿,别跟我整没用的什么内存啦,什么first-class function了,你妹啊,你至于么,说函数能够当参数通报不就得了么,能用一个字儿,峭壁不必两个字儿。

好吧,本日五一就给人人列列我常常一个字儿回复的题目吧。

1.先生我们是否是线上授课啊?

答:嗯

2.先生我们有视频吗?

答:有

3.先生我学了这个课工作用中有不会的还能够问你不?

答:行

4.先生假如假如线上学不会我能线下跟你学不?

答:好

5.先生我怕学不好咋办?

答:练。

6.先生我一向听你的课,以为你讲的可好了,这个课能先随着学一段看看我能不能学会再报名不?

答:滚。

好了,不扯淡了。函数式编程几分钟就完事儿了,简朴的让人发指。举个例子,数组更加

面向历程

        var arr = [1,2,3];
        var arr2 = [];
        for(var i = 0;i<arr.length;i++){
          arr2.push(arr[i]*2);
        }
        console.log(arr2);

函数式编程,你记着怎样爽怎样来,能用函数的处所就别散养,举个例子上面的例子看看函数式编程咋玩。

        function forEach(arr,fn){
          var newArr = [];
          for(var i = 0;i<arr.length;i++){
            newArr.push(fn(arr[i]*2));
          }
          return newArr;
        }
        var arr = [1,2,3];
        var arr2 = forEach(arr,function(item){
            return item;
        });
        console.log(arr2);

有人能够会说我没以为出来函数式样编程有啥优点啊,对,由于你是为了用它而用它,人人要注意,手艺肯定是为了简化题目存在的,而不是庞杂它,所以上面的例子是错的,换个思绪我们看看。

        function forEach(arr,fn){
          var newArr = [];
          for(var i = 0;i<arr.length;i++){
            newArr.push(fn(arr[i]));
          }
          return newArr;
        }
        var arr = [1,2,3];
        var arr2 = forEach(arr,function(item){
            return item*2;//重点是这里
        });
        console.log(arr2);

有啥用,这个是angular过滤器的基本,完成一个相似过滤器的例子。数组内里的数假如大于2我没返回一个true假如小于2返回false。相似如许

[1,2,3]->[false,false,true]为何这么做,常常过滤器过滤东西依据前提返回对应的true或许false

        function forEach(arr,fn){
          var newArr = [];
          for(var i = 0;i<arr.length;i++){
            newArr.push(fn(arr[i]));
          }
          return newArr;
        }
        var arr = [1,2,3];
        var arr2 = forEach(arr,function(item){
            return item>2;
        });
        console.log(arr2);

瞥见了吧,是否是很简朴,函数式编程的优点是,经由过程差别的函数组合完成对js状况的转变,而不是像面向历程一样经由过程影响全局变量的体式格局,也不是面向对象经由过程斟酌怎样增加对象身上要领的体式格局。

函数式编程明白这么多就够了,再有用就能够看angular源码了。

    原文作者:前端大彬哥
    原文地址: https://segmentfault.com/a/1190000009244059
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞