zoukankan      html  css  js  c++  java
  • js函数柯里化

    函数柯里化是什么?

    函数柯里化(curry)就是只传递给函数一部分参数来调用它,让它返回一个函数去处理剩下的参数。

    函数柯里化案例?

    function curry(fn) {
    		var args = Array.prototype.slice.call(arguments,1);
    		return function(){
    			var innerArgs = Array.prototype.slice.call(arguments);
    			var finalArgs = args.concat(innerArgs);
    			return fn.apply(null, finalArgs);
    		}
    	}
    	
    	/*
    	程序执行分析:
    	1. args = [5];
    	2. innerArgs = [3];
    	3. finalArgs = [5,3] = [5].concat([3]);
    	4. 8
    	*/
    
    	function add(num1,num2) {
    		return num1+num2;
    	}
    	//var curriedAdd = curry(add,5);
    	alert(curry(add,5)(3));
    

    函数柯里化的应用场景?

    最典型的代表应用,是bind函数用以固定this这个易变对象。

    Function.prototype.bind = function(context) {
        var _this = this,
        _args = Array.prototype.slice.call(arguments, 1);
        return function() {
            return _this.apply(context, _args.concat(Array.prototype.slice.call(arguments)))
        }
    }
    
  • 相关阅读:
    AsyncTask,MailTask,ScheduledTask
    Mysql的事务理解
    MySQL初识
    HTTP 的原理零散知识点
    SpringBoot简单搭建开发
    Android 的生命周期
    C51 虚拟元器件
    JavaSE 知识整合 (更新中……)
    java关键字篇
    Android开启网络权限
  • 原文地址:https://www.cnblogs.com/reamd/p/5529309.html
Copyright © 2011-2022 走看看