美文网首页
JavaScript的柯里函数

JavaScript的柯里函数

作者: 不懂小彬 | 来源:发表于2017-12-28 14:20 被阅读0次

什么是柯里化函数

柯里化函数是把原来接受多个参数的函数变换成接受一个单一参数的函数,并且返回接受余下的参数而且返回结果的新函数。

举个🌰:

function currying(fn) {
    var slice = Array.prototype.slice,
    __args = slice.call(arguments, 1);
    return function () {
        var __inargs = slice.call(arguments);
        return fn.apply(null, __args.concat(__inargs));
    };
}

function Ajax() {
    this.xhr = new XMLHttpRequest();
}

Ajax.prototype.open = function(type, url, data, callback) {
    this.onload = function() {
        callback(this.xhr.responseText, this.xhr.status, this.xhr);
    }

    this.xhr.open(type, url, data.async);
    this.xhr.send(data.paras);
}

'get post'.split(' ').forEach(function(mt) {
    Ajax.prototype[mt] = currying(Ajax.prototype.open, mt);
});

var xhr = new Ajax();
xhr.get('/articles/list.php', {},
function(datas) {
    // done(datas)    
});

var xhr1 = new Ajax();
xhr1.post('/articles/add.php', {},
function(datas) {
    // done(datas)    
});

相关文章

  • 掌握JavaScript函数的柯里化

    原文链接 Haskell和scala都支持函数的柯里化,JavaScript函数的柯里化还与JavaScript的...

  • JavaScript的柯里函数

    什么是柯里化函数 柯里化函数是把原来接受多个参数的函数变换成接受一个单一参数的函数,并且返回接受余下的参数而且返回...

  • JavaScript函数柯里化

    概念 函数柯里化是指将一个多参数的函数转化成多个一个参数调用的函数的过程。 实现 柯里化的实现方式很多,如下: 此...

  • JavaScript 函数柯里化

    ?总结 利用闭包的特性,将参数分批次、一一对应的传入原函数中去,并在收集完所有参数后执行最终函数得到结果。 cur...

  • 『JavaScript专题』之函数柯里化

    JavaScript专题之函数柯里化 定义 维基百科中对柯里化 (Currying) 的定义为: In mathe...

  • JavaScript

    JavaScript高级函数 惰性函数 函数柯里化 级联函数(链式函数) 设计模式 单例模式 构造函数模式 工厂模...

  • JavaScript之函数的柯里化。

    今天张老师给大家介绍一下什么是函数的柯里化。这是个比较高级的知识,基本上面试的时候如果问起来,你答出来了,技术面的...

  • 掌握JavaScript函数的柯里化

    https://segmentfault.com/a/1190000006096034 http://blog.c...

  • JavaScript 函数柯里化和偏函数

    1.柯里化 柯里化(英语:Currying),又译为卡瑞化或加里化。在数学和计算机科学中,柯里化是一种将使用多个参...

  • Javascript缓存函数&柯里化&偏函数

    缓存函数 memorizition 定义:将上次的计算结果缓存起来,当下次调用时,如果遇到相同的参数,就直接返回缓...

网友评论

      本文标题:JavaScript的柯里函数

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