function add(num) {
  let result = num;
  function multi(m) {
    result *= m;
    return this;
  }
  function div(d) {
    result /= d;
    return result;
  }
  return {
    multi: multi,
    div: div
  }
}

console.log(add(2).multi(9).div(3)); // 输出 6

这段代码实现了函数链式调用。函数 add 接受一个参数 num,并返回一个对象,该对象包含两个属性 multidiv,它们分别是两个闭包函数 multidiv 的引用。

multi 函数接受一个参数 m,将 result 乘以 m,并返回 this,即返回包含 multidiv 的对象,以便实现链式调用。

div 函数接受一个参数 d,将 result 除以 d,并返回 result

最后通过 console.log(add(2).multi(9).div(3)); 调用,先执行 add(2) 得到一个包含 multidiv 的对象,接着调用 multi(9)result 乘以 9,然后继续调用 div(3)result 除以 3,最终得到 6 的结果。

封装一个函数完成功能:add2multi9div3 的结果是6。并解释一下代码

原文地址: https://www.cveoy.top/t/topic/Nyr 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录