1 回答
TA貢獻1798條經(jīng)驗 獲得超7個贊
把for()的四次循環(huán)展開其實會好理解一點。
變成如下代碼:
func = function(cb, num){
return function (){
console.log(num)
cb()
}
}(func, 3)
func = function(cb, num){
return function (){
console.log(num)
cb()
}
}(func, 2)
func = function(cb, num){
return function (){
console.log(num)
cb()
}
}(func, 1)
func = function(cb, num){
return function (){
console.log(num)
cb()
}
}(func, 0)
實際上循環(huán)是對func進行了四次賦值,你的輸出結(jié)果中的0是
console.log(num)
的輸出結(jié)果,而之后的1,2,3則是
cb()
的輸出結(jié)果。
為什么cb()是func()卻會輸出1,2,3呢?是因為在上一次的賦值里
func()輸出的是1,2,3 所以在一次的賦值中cb()輸出1,2,3 在這之前,console.log()輸出0。
這樣就是為什么會輸出0,1,2,3的結(jié)果的原因了。
添加回答
舉報
