• 柯里化手写实现


    一.什么是柯里化函数?

    第一次看到柯里化这个词,是不是觉得特别高大上,官方解释也不是很容易理解,实际上柯里化很简单!

    如fn(1)(2)() | fn(1,2)(3,4,...) ,这种可以连续调用的函数的就是柯里化函数

    二.柯里化函数的特点

    柯里化函数在最后一次调用的时候,才会去真正执行

    三.柯里化函数使用在哪里?

    柯里化经常涉及到几个概念:高阶函数、闭包、call/apply,argument

    柯里化函数在react的高阶组件中常用,比如react-redux的底层仿写就是高阶组件+柯里化

    柯里化的原理就是有参数时返回当前函数,没参数时执行所有参数,返回一个最终结果.这里写一个简单的柯里化函数实现

    <script>
            function myCurry(fn) {
                var arr = [];
                return function () {
                    if (arguments.length > 0) {
                        arr=arr.concat(Array.from(arguments))
                        return arguments.callee;
                    } else {
                        return fn.apply(null,arr)
                    }
                }
    
            }
            let fn=myCurry(function(){
                let arr=Array.from(arguments);
                let sum=arr.reduce(function(total,item){
                    return total+item;
                })
                return sum;
            })
            var s=fn(1)(2)()
            console.log( s);//3
           
        </script>
  • 相关阅读:
    计算机网络七:中继器、集线器、交换机、路由器、网桥和网关
    vue 简易计算器
    express mongodb 连接池
    vue过度动画
    Webpack 学习笔记(0)
    git 学习笔记
    MySQL 权限笔记
    java gui笔记
    3d tranform css3
    java 多线程笔记
  • 原文地址:https://www.cnblogs.com/liuXiaoDi/p/12615860.html
Copyright © 2020-2023  润新知