美文网首页
JS纯函数

JS纯函数

作者: vinterx | 来源:发表于2019-04-24 00:30 被阅读0次

    纯函数简单定义

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

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

    相关文章

      网友评论

          本文标题:JS纯函数

          本文链接:https://www.haomeiwen.com/subject/fsbigqtx.html