zoukankan      html  css  js  c++  java
  • javascript curry

    Function.prototype.before = function (func) {
    	var me = this;
    	return function () {
    		if (func.apply(this, arguments) === false) {
    			return false;
    		}
    		return me.apply(this, arguments);
    	}
    }
    
    // 先执行func
    Function.prototype.before2 = function (func) {
    	var me = this;
    	return function () {
    		var ret = func.apply(this, arguments);
    
    		if (!ret) {
    			return false;
    		} 
    
    		return me.apply(this, arguments);
    	}
    }
    
    // 先执行 after,再执行func
    Function.prototype.after = function (func) {
    	var me = this;
    	return function () {
    		var ret = me.apply(this, arguments);
    
    		if (ret == false) {
    			return false;
    		}
    
    		func.apply(this, arguments);
    		return ret;
    	}
    }
    
    var bind  = function (fn, context) {
    	return function () {
    		return fn.apply(context, arguments)
    	}
    };
    
    
    var curry = function (fn) {
    	var args = Array.prototype.slice.call(arguments, 1);
    	return function () {
    		var innerArgs = Array.prototype.slice.call(arguments);
    		var finalArgs = args.contact(innerArgs);
    		return fn.apply(null, finalArgs);
    	}
    };
    
    var bind2 = function (fn, context) {
    	var args = Array.prototype.slice.call(arguments, 2);
    	return function () {
    		var innerArgs = Array.prototype.slice.call(arguments);
    		var finalArgs = args.contact(innerArgs);
    		return fn.apply(context, finalArgs);
    	}
    }
  • 相关阅读:
    数学
    数学
    Computer Science
    数学
    Computer Science
    元学习
    数学
    数学
    数学
    数学
  • 原文地址:https://www.cnblogs.com/leamiko/p/3115108.html
Copyright © 2011-2022 走看看