You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现decrement生成的函数实例调用时返回值逐次递减?

实现decrement函数的方案

要实现这个需求,核心是利用闭包特性——让内部函数可以持续访问并修改外部函数作用域中的变量,从而保留每次调用后的状态。

代码实现

function decrement(number) {
  let currentValue = number;
  return function() {
    const returnVal = currentValue;
    currentValue--;
    return returnVal;
  };
}

代码说明

  • 调用decrement(number)时,会创建局部变量currentValue保存传入的初始数值,并返回一个匿名函数。
  • 每次调用返回的匿名函数时,先记录当前currentValue的值作为返回结果,再将currentValue递减1。这样就实现了第一次返回初始值,后续每次调用结果递减1的效果。

测试验证

let a = decrement(5);

console.log(a()); // -> 5
console.log(a()); // -> 4
console.log(a()); // -> 3
console.log(a()); // -> 2
console.log(a()); // -> 1
console.log(a()); // -> 0

内容的提问来源于stack exchange,提问作者Kate Miller

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 15:30:41