怎样调用vue的methods中闭包方法?

image.png

如图所示,调用三次这个方法,199行打印出来的为什么是三个1,这地方有点不太明白,a不应该每次都递增吗?

阅读 3.9k
1 个回答
changeNum: (() => {
  let a = 0;
  return function() {
    a++;
    console.log(a)
  }
})()

你在循环体里每次都是重新执行函数得到return的这个函数。你应该让changeNum直接就指向内部return的函数,或者你在forEach之前先执行changeNum得到内部的函数,然后循环执行该函数

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