资讯专栏INFORMATION COLUMN

体验javascript之美第九课-函数式编程和angular过滤器实现原理

coordinate35 / 981人阅读

摘要:函数式编程我在网上看了很多关于的函数式编程的教程,不过我感觉很多不是照抄的或者就是故弄玄虚。函数式编程几分钟就完事儿了,简单的让人发指。函数式编程理解这么多就够了,再实用就可以看源码了。

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

函数式编程,你记住怎么爽怎么来,能用函数的地方就别散养,举个例子上面的例子看看函数式编程咋玩。

        function forEach(arr,fn){
          var newArr = [];
          for(var i = 0;i

有人可能会说我没感觉出来函数式样编程有啥好处啊,对,因为你是为了用它而用它,大家要注意,技术一定是为了简化问题存在的,而不是复杂它,所以上面的例子是错的,换个思路我们看看。

        function forEach(arr,fn){
          var newArr = [];
          for(var i = 0;i

有啥用,这个是angular过滤器的基础,实现一个类似过滤器的例子。数组里面的数如果大于2我没返回一个true如果小于2返回false。类似这样

[1,2,3]->[false,false,true]为什么这么做,经常过滤器过滤东西根据条件返回对应的true或者false

        function forEach(arr,fn){
          var newArr = [];
          for(var i = 0;i2;
        });
        console.log(arr2);

看见了吧,是不是很简单,函数式编程的好处是,通过不同的函数组合实现对js状态的改变,而不是像面向过程一样通过影响全局变量的方式,也不是面向对象通过考虑如何添加对象身上方法的方式。

函数式编程理解这么多就够了,再实用就可以看angular源码了。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/82774.html

相关文章

  • 体验javascript之美第七课 理解原型链扩展原型方法

    摘要:原型链理解第一件事你不用管其他语言,一句话,你只要记住里面的对象包含一个原型,原型是啥,就是另外一个对象。原型就相当于你家的车棚子,而你的那个自行车就是对象。万事万物皆对象有啥用一句话,扩展原型方法,给大家一到面试题,数组去重自己体会下。 概述 通过上节课的学习,大家已经会用一种json的方式定义对象了,其实这个就是传说中的单体模式,当然这个大家不用记,关于设计模式暂时不用了解。但是总...

    wslongchen 评论0 收藏0
  • Vue.js 九课 组件

    摘要:组件是最强大的功能之一。组件可以扩展元素,封装可重用的代码。验证组件可以为指定验证要求。以下实例中子组件已经和它外部完全解耦了。它所做的只是触发一个父组件关心的内部事件。实例如果你想在某个组件的根元素上监听一个原生事件。 组件(Component)是 Vue.js 最强大的功能之一。 组件可以扩展 HTML 元素,封装可重用的代码。 组件系统让我们可以用独立可复用的小组件来构建大型应用...

    church 评论0 收藏0
  • 体验javascript之美6:如果你觉得什么都会了或者不知道js学什么了看这里-面向对象编程

    摘要:面向过程函数式编程面向对象编程第二个并不是大家理解的那样,我们先说举个现实例子就明白了。多说一句函数是编程是非常强大也是我最喜欢的,以后再说,我们先说面向对象编程。 概述 当大家已经把js的语言基础理解了,然后能够写出一些简单的例子了,这个时候基本上达到了一年工作经验的水平,而自己能够独立的写一些小功能,完成一些小效果,或者临摹修改一些比较复杂的插件的时候差不多就是两年工作经验的水平,...

    changfeng1050 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<