Vue源码疑惑

刚开始看源码, 这一行我有点困惑:

// The current target watcher being evaluated.
// This is globally unique because only one watcher
// can be evaluated at a time.
Dep.target = null
const targetStack = []

export function pushTarget (target: ?Watcher) {
  targetStack.push(target)
  Dep.target = target
}

export function popTarget () {
  targetStack.pop()
  Dep.target = targetStack[targetStack.length - 1]
}

dep.js

这一行在export的函数外面。不是只在被import的时候执行一次吗? 后面就再也不能执行到他了, 所以他是怎么起作用的。

阅读 1.7k
1 个回答

你把他看作一个变量,紧接着这行代码,下面导出的两个函数就用到了这个变量,这里形成了一个闭包。

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