字节一个面试题

2022-02-23  本文已影响0人  前端人

实现 如下效果
add(2,3,4).sumOf()
add(2)(3,4).sumOf() // 9
add(2)(3)(4).sumOf()
add(2,3)(4).sumOf()

    function add() {
        let a = [...arguments];

        function fun() {
            a = [...a, ...arguments];
            return fun;
        }

        fun.sumOf = () => {
            return a.reduce((pre, cur) => pre + cur, 0)
        }

        return fun;
    }

主要应用arguments 和 闭包,也叫函数柯里化

上一篇下一篇

猜你喜欢

热点阅读