美文网首页
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的柯里函数

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