反柯里化函数

//反柯里化
Function.prototype.uncurry = function() {
    //保存当前对象
    let _this = this;
    return function() {
        return Function.prototype.call.apply ( _this, arguments) ;
    } 
}   

实际使用

1.当用Object.prototype.toString校验对象类型时:

//获取校验方法
let _ toString = Object.prototype.toString.uncurry() ;
//测试对象数据类型
console.log (toString (function() {})); // chrome: [object Function]
console.log (toString([])); // chrome: [object Array] 

2.用数组的push方法为对象添加数据成员:

//保存数组push方法
let push = [].push.uncurry();
//创建一个对象
let demoArr = {};
//通过push方法为对象添加数据成员
push(demoArr, '第一个成员', '第二个成员');
console.log (demoArr); // chrome: object {0: "第一个成员",1: "第二个成员", length:2}
原文地址:https://www.cnblogs.com/LeoXnote/p/13063906.html