编辑代码

function test (a, ...b) {
        console.log('aa', a)
        console.log('bb', b)
    return function (a, ...b) {
        console.log('a', a)
        console.log('b', ...b)
        return
    }
}

test(1, 2, 3, 4)(5, 6, 7)

function a(key, ...value) {
    const newKey = key
    const newValue = value
    return () => {
        return function () {
            console.log('newKey', newKey)
            console.log('newValue', newValue)
        }
    }
}

a(13, 14, 15)()()

function b(fn, param) {
    function c (args) {
        console.log('接收到args', args)
    }
    return (...args) => {
        console.log('能输出fn吗',fn)
        console.log('能输出param吗', param)
        c(args)
    }
}

function fn () {
    console.log('hi, fn!')
}

b(fn, 999)(19, 20, 21)

function bbb(fn, param) {
    function c (...args) {
        console.log('接收到args', args)
    }
    return function (...args) {
        console.log('能输出fn吗',fn)
        console.log('能输出param吗', param)
        c(args, param)
    }
}

bbb(fn, 999)(19, 20, 21)