zoukankan      html  css  js  c++  java
  • 什么是纯函数?

    大致从两个方向上进行判断,

    1. 函数的返回结果只依赖于它的参数

    2. 执行过程中没有副作用

    对于第一点,下面看一个例子,func1中返回的值只依赖于传入的参数属于纯函数,而func2中返回的值依赖于外部参数x,是不纯的

    var x = 1;
    function func1(a, b){
        return a + b;
    }
    
    function func2(a, b){
        return a + b + x;
    }

    对于第二点,副作用就是指函数内部使外部环境的产生了可观察的变化,如下

    var count = {price: 10}
    function func3(obj, a){
        return obj.price + a
    }
    func3(count, 5)
    
    function func4(obj, a){
        obj.price = 50
        return obj.price + a
    }
    func4(count, 5)

    在func3中,并未对obj的值进行更改,属于纯函数;在func4中,count的price被改为了50,是不纯的

    副作用不仅限于此,还包括http请求、调用DOM API更改页面、发送Ajax请求,甚至console.log也属于副作用

  • 相关阅读:
    自动化测试
    django
    Linux软件推荐
    deepin升级20.1(2021.3)
    struts_自定义日期类型转换器
    struts_01
    JAVA面向对象思想
    springmvc 文件上传
    ajax+struts2 实现省份-城市-地区三级联动
    mybatis——分页插件
  • 原文地址:https://www.cnblogs.com/ashen1999/p/12949047.html
Copyright © 2011-2022 走看看