函数柯里化

       function add(){
            // 保存第一个括号里的变量到 arr 数组里面
            // slice 方法可以用来将一个类数组(Array-like)对象/集合转换成一个新数组
            let arr = Array.prototype.slice.call(arguments);

            function inner(){
                // 将后面的调用 inner 的参数添加到 arr 数组里面
                arr.push(...arguments);
                // 循环调用
                return inner;
            }

            // 改写 toString 方法
            inner.toString = function (){
                let sum = arr.reduce((prev, cur) => {
                    return prev + cur;
                });
                return sum;
            }
           
            return inner;
       }

        // 测试一下
        // let result = parseInt(add(1)(2)(3));  // 6
        let result = add(1)(2)(3).toString();
        console.log(typeof result);

chrome浏览器测试需要在后面调用一个toString方法

posted @ 2022-09-16 14:57  学习让我充实  阅读(25)  评论(0)    收藏  举报