美文网首页
Javascript纯函数缓存

Javascript纯函数缓存

作者: imjcw | 来源:发表于2019-11-20 17:17 被阅读0次

前言

最近看了gitbook上的一本书,名叫《JS函数式编程指南》,看到了一个之前从未想到的小方法,做个笔记,记录一下。

实现

var memoize = function(fn){
    var toStr = Object.prototype.toString;
    var isCallable = function (fn) {
       return typeof fn === 'function' || toStr.call(fn) === '[object Function]';
    }
    if (!isCallable(fn)) {
        throw new TypeError('memoize: when provided, the first argument must be a function');
    }
    var cache = {};
    return function(){
        if (arguments.length < 1) {
            throw new TypeError('memoize: arguments cannot be null or undefined');
        }
        var args = Array.prototype.slice.call(arguments);
        var str = args.join('-');
        cache[str] = cache[str] || fn.apply(fn, arguments);
        return cache[str];
    };
};

调用的方式很简单,代码如下:

var sum = memoize(function (a, b) {
    console.log('开始相加');
    return a + b;
});

可以执行一下,看下效果,下图就是在chrome下执行的结果:

代码运行图

结尾

有很多别人用烂的实现方式,对于我还属于一个新奇的技术,要多学多看,多实践。

相关文章

  • Javascript纯函数缓存

    前言 最近看了gitbook上的一本书,名叫《JS函数式编程指南》,看到了一个之前从未想到的小方法,做个笔记,记录...

  • 函数式编程(二)—— 纯函数

    目录 纯函数纯函数的概念Lodash——纯函数的代表体验Lodash纯函数的好处可缓存可测试并行处理副作用【函数式...

  • 5.纯函数

    理解JavaScript纯函数 函数式编程中有一个非常重要的概念叫纯函数,JavaScript符合函数式编程的范式...

  • JS纯函数 柯里化函数 组合函数

    1.纯函数(Pure Function) 函数式编程中有一个非常重要的概念叫做纯函数,javascript符合函数...

  • JavaScript - 纯函数

    纯函数,一个通常出现在函数式编程中的概念。 一. 纯函数的特点是什么? 1. 纯函数结果只依赖于参数,与函数外部变...

  • JavaScript 纯函数

    你可能听过一个术语叫纯函数,它是一个非常重要的概念,我们下面将来介绍它。 两项标准 纯函数必须满足两个条件: 对于...

  • 函数式编程入门系列一

    函数引用透明性替换模型命令式,声明式与抽象纯函数纯函数产生可测试的代码并发代码可缓存管道与组合纯函数是数学函数 j...

  • 纯函数

    纯函数概念 相同输入必然得到相同输出,且函数必定有参数和返回值。 纯函数的好处 -可缓存 -可测试(如单元测试中,...

  • NQ-CACHE 函数缓存,支持纯函数和返回值为Promise的

    NQ-CACHE 函数缓存,支持纯函数和返回值为Promise的函数 项目地址 https://github.co...

  • JavaScript 数组纯函数

    1. 常用的数组 API forEach 遍历所有元素,item 对应的是元素的值,index 对应的是元素的位置...

网友评论

      本文标题:Javascript纯函数缓存

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