function curringFn() {
let args = Array.prototype.slice.call(arguments)
const inner = function () {
// 当最后调用不传参数时,直接返回值
if (!arguments.length) {
return args.reduce((pre, cur) => pre + cur, 0)
}
args.push(...arguments)
return inner
}
// Symbol.toPrimitive 指将被调用的指定函数值的属性转换为相对应的原始值
inner.__proto__[Symbol.toPrimitive] = inner.toString = function () {
return args.reduce((pre, cur) => pre + cur, 0)
}
return inner
}
let res = curringFn(1, 2, 3, 4)(5, 6, 7)(8, 9)
console.log(res - 1)
函数科里化---js
最新推荐文章于 2024-08-14 15:45:18 发布