JS纯函数

2019-04-24  本文已影响0人  vinterx

纯函数简单定义

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

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

上一篇下一篇

猜你喜欢

热点阅读