//反柯里化 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}