javascript中回调和递归并用的问题

varimge=newImage();
vararr=newArray(8);
varopp=0;
functiondigui(opp){
imge.src="这里在网上必须有一个图片的链接地址不然测试不出来";
imge.onload=function(){
opp++;
if(oppconsole.log("第一层"+opp);
digui(opp);
}
console.log(opp);
}
}
digui(opp);
我想知道输出为什么是0到7,按递归应该是7到0啊,有人说是回调的作用,有人解释下吗,不胜感激
侃侃无极
浏览 264回答 2
2回答

慕工程0101907

varopp=0;functiondigui(opp){opp++;if(opp

青春有我

简单而言,就是你把实现递归的模式给改了,传统的实现是这样的>1开始>---2开始>------3开始>------3结束>---2结束>1结束而的你实现改成了>1开始>1结束>---2开始>---2结束>------3开始>------3结束为什么会成这个样,是因为onload这个事件的触发,onload事件触发是在加载图片完成后才执行的。也就是“1开始”后执行时并不会马上触发“2开始”的相关逻辑,而是要等待图片加载完成后,才会触发“2开始”,而这时在等待图片加载时,“1结束”部分已经执行完毕functiondigui(opp){//开始console.log(opp+'start');imge.src="这里在网上必须有一个图片的链接地址不然测试不出来";imge.onload=function(){opp++;if(opp
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript