vue中调用闭包的方法,闭包的方法不执行

// index.js
export const test = () => {
  let count = 1
  return () => {
    console.log(count++)
  }
}

// index.vue
import { test } from './index.js'

test()  // 没有任何打印


// test.js
import { test } from './index.js'

test()
test()

如果是在js中调用结果是 1 2

暂且使用的办法是将闭包函数改为立即执行,但是这种情况执行

export const test = () => {
  let count = 1
  return (() => {
    console.log(count++)
  }}()
}

// .vue
mounted() {
  test()
  test()
}

在vue中打印的结果是 1 1
阅读 3.4k
2 个回答

var fn = test()
fn() // 1
fn() // 2

有点蠢了,思想没转过来,调用的时候test()得到的结果是内部的方法,只有需要再次调用方法,才可以执行内部方法,在js中我是重新

let r = test()
r()
r()

没注意到这一步的重新赋值,引起的思想错误

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