JS纯函数

纯函数简单定义

1.函数返回的结果只依赖它的参数
2.函数的执行不会对该函数之外的其他对象等造成影响(副作用)

举例说明1

        let a = 1

        let fn = (b) => {
            return a + b
        }

        fn(9) // 10

函数返回的结果依赖了外部变量a的影响,所以不是纯函数。

        let fn = (a, b) => {
            return a + b
        }

        fn(1, 9) // 10

完全依赖传入的参数,所以是纯函数。

举例说明2

        let arr = [1, 2]

        let fn = (a, b) => {
            return a + b
        }
    
        fn(arr[0], 9)

这还是纯函数,改变一下

        let arr = [1, 2]

        let fn = (a, b) => {
            a[0] = 2
            return a[0] + b
        }
    
        fn(arr, 9)
        console.log(arr) //  [2, 2]

函数的执行,改变了外部数组arr的值,产生副作用,所以不是纯函数。

总结
纯函数在复杂的代码中是非常有用的,它的结果只依赖传递的参数,且不会对外部造成任何影响,高可控又复用。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 纯函数 若一个函数对相同的输入,永远会得到相同的输出,并且不会影响该函数作用域以外的环境变量,则此函数称为纯函数。...
    PorcoPP阅读 6,634评论 0 6
  • 要点: 函数式编程:注意不是“函数编程”,多了一个“式” 模块:如何使用模块 面向对象编程:面向对象的概念、属性、...
    victorsungo阅读 5,547评论 0 6
  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 8,087评论 2 9
  • 英语底子稍微好点的同学 可能听过blue blood(蓝血)这个表达 为啥血有蓝的? 是我们的构成不同么? 还是....
    驻下Kobe阅读 4,153评论 0 2
  • 很喜欢这样的状态,心无杂尘,没有负担,一个人单车骑行,行走在云水之间,风轻轻地吹着,我在路上,行人在路上,...
    风之爱阅读 3,106评论 7 12

友情链接更多精彩内容