JS如何实现一个方法内自增变量?

代码
const fun1 = () => {
 // 这里有一些我不会写的代码
 return fun2()
}

const fun2 = (val) => {
   return val
}

fun1(); // 这里输出1
fun1(); // 这里输出2
fun1(); // 这里输出3
// ...

请问 fun1 里面应该怎么写?

阅读 5.9k
2 个回答
function fun1 () {
 var num = 0;
 return function () {
  num++;
  console.log(num);
 }
}
const fun2 = fun1();
fun2(); // 这里输出1
fun2(); // 这里输出2
fun2(); // 这里输出3

使用闭包的形式就可以实现

const fun1 = () => {
    fun1.count = fun1.count || 0;
    fun1.count++;
    
    return fun2(fun1.count);
}

这样?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题