Javascript每日一题

2021-07-20 11:55 Javascript每日一题

输出是什么?

const fnc = (fn, ...outer) => {  return (...inner) => {    let args = [...inner, ...outer]    return fn.apply(null, args)  }}
const fn = (...args) => ((args[0] + args[1]) * args[2])fnc(fn, 2)(3, 4) // ?


单 选


•  A: 14•  B: 20•  C: 24•  D: 18




图片




图片

答案

图片





答案: A


上述例子属于Javascript函数柯里化的一个简单应用,函数柯里化具有参数复用,配置隔离,延迟运行等作用。

const fnc = (fn, ...outer) => {  return (...inner) => {    let args = [...inner, ...outer] // 传入实参合并成一个新数组,注意传入顺序    return fn.apply(null, args) // 使用 apply 方法,因为 apply 第二个参数是一个数组  }}
const fn = (...args) => ((args[0] + args[1]) * args[2])fnc(fn, 2)(3, 4) // ?




2021/07/20
本文章转载自公众号:javascript_daily

首页 - Javascript 相关的更多文章: