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

    来自百度百科:柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术。

    可能上面的话比较抽象,但是用代码实现去理解是很明了的↓↓↓

    <!DOCTYPE html>
    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Document</title>
      </head>
        <body>
            <script type="text/javascript">
                function currey(fn){
                    var arr=[];
                    return function(){
                        if(arguments.length>0){
                            arr=arr.concat([].slice.call(arguments));
                            return arguments.callee;
                        }else {
                            return fn(arr)
                    }
                };
                }
                function getSum(arr){
                    var sum= arr.reduce((value,item)=>{
                        return value+item
                    })
                    return sum
                }
                function getProduct(arr){
                    var sum=arr.reduce((value,item)=>{
                        return value * item
                    })
                    return sum
                }
                var sum=currey(getProduct);
                sum(1,2);
                // sum(2,3,4);
                sum(1,2)(3)
                var s=sum();
                console.log(s);
            </script>
        </body>
    </html>
  • 相关阅读:
    无服务器架构(Faas/Serverless)
    Cookie中的sessionid与JSONP原理
    requestAnimationFrame
    JS函数的防抖和节流
    JS 中的广度与深度优先遍历
    堆、栈和队列
    Java除法和js
    selected
    找jar包
    编辑器替换操作
  • 原文地址:https://www.cnblogs.com/shewill/p/13432893.html
Copyright © 2011-2022 走看看