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

如何实现无需传参的IIFE斐波那契函数?

实现无参数的斐波那契序列生成函数

可以利用闭包来保存斐波那契序列的状态,通过IIFE创建私有变量,返回的函数每次调用时自动计算并输出下一项,完全不需要传参:

const fibGenerator = (function() {
  // 初始化前两项,对应首次和第二次调用的输出
  let prev = 0, curr = 1;
  return function() {
    // 先输出当前的curr值
    console.log(curr);
    // 更新前两项,为下一次调用做准备
    [prev, curr] = [curr, prev + curr];
  };
})();

调用测试:

fibGenerator(); // 输出1(第一次)
fibGenerator(); // 输出1(第二次)
fibGenerator(); // 输出2(第三次)
fibGenerator(); // 输出3(第四次)
fibGenerator(); // 输出5(第五次)

原理说明:

  • IIFE立即执行后,创建了私有变量prev和curr,这两个变量仅在返回的函数内部可访问和更新,不会污染全局作用域。
  • 每次调用返回的函数时,先输出当前的curr值,再通过解构赋值更新prev和curr的取值,确保下一次调用能得到正确的斐波那契项。
  • 实现逻辑简单直接,既没有使用数组存储历史项,也不需要每次调用传入参数,完全匹配你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 02:01:10