在看Vue的源码,看到以下这段代码的while
循环怎么看都是死循环,但是感觉源码不应该会有死循环啊,求指点~
function callUpdatedHooks (queue) {
let i = queue.length
// 这不是死循环吗
while (i--) {
const watcher = queue[i]
const vm = watcher.vm
if (vm._watcher === watcher && vm._isMounted) {
callHook(vm, 'updated')
}
}
}
首先,你要理解while循环:
其次,
while (i--)
,你要理解i--
即i=i-1
,当i=0
时,while (0)
在js中就是while (false)
,循环就停止了。