写点什么

纯函数

作者:达摩
  • 2022-12-12
    陕西
  • 本文字数:536 字

    阅读完需:约 2 分钟

纯函数

什么是纯函数:一个函数的返回结果只依赖于它的参数,并且在执行过程里面没有副作用,我们就把这个函数叫做纯函数


即满足如下条件的函数为纯函数:

  • 相同输入总是会返回相同的输出。

  • 不产生副作用(意味着它无法更改任何外部状态)。

  • 不依赖于外部状态。


纯函数超级独立的性:使它容易在代码中移动、重构、重新组织,让程序更灵活,更适应将来的改变


纯函数的优势

  • 更容易进行测试,结果只依赖输入,测试时可以确保输出稳定

  • 更容易维护和重构,我们可以写出质量更高的代码

  • 更容易调用,我们不用担心函数会有什么副作用

  • 结果可以缓存,因为相同的输入总是会得到相同的输出


纯函数缓存功能示例:

// 简单实现缓存的一个函数 fix怎么理解    var memoize = function(f) {        var cache = {};        return function() {            var arg_str = JSON.stringify(arguments);            cache[arg_str] = cache[arg_str] || f.apply(f, arguments);            return cache[arg_str];        };    };    var squareNumber = memoize(function(x) {        return x * x;    });    squareNumber(4); //16    squareNumber(4); // 从缓存中读取输入值为 4 的结果    squareNumber(5); //25    squareNumber(5); // 从缓存中读取输入值为 5 的结果
复制代码


用户头像

达摩

关注

还未添加个人签名 2019-12-04 加入

还未添加个人简介

评论

发布
暂无评论
纯函数_js_达摩_InfoQ写作社区