欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JS纯函数

程序员文章站 2024-02-08 14:42:04
...

纯函数简单定义

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的值,产生副作用,所以不是纯函数。

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

转载于:https://www.jianshu.com/p/893c92cfca3a