var a = 0, b = 20function add(num,callback){ setTimeout(function(){ if(num==10||num==30){ callback&&callback() }else{ num++ console.log(num) add(num,callback) } },1000) } add(a,add(b))
这段代码是想先让a加到10,然后让b加到30。但是运行结果是1 21 2 22 3 23...,这个函数的执行流程不太理解,另外我把最后一句代码修改成这样,执行效果就是正确的。刚刚学js不久,想不出这个问题怎么回事,恳请大家帮我解答这个问题。
add(a,function(){ add(b)})//1 2 3 .... 10 11 12 13...30
炎炎设计
相关分类