js中的(function(){...})()
生活随笔
收集整理的這篇文章主要介紹了
js中的(function(){...})()
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
js中的(function(){...})()
作為一個前端小白,今天遇到了一個惡心我一天的問題,先看我的代碼。
for(var i=0;i<addrs.length;i++){var info = "<div>訂單數量:"+addrs[i][1]+"</div>";myGeo.getPoint(addrs[i][0], function(point){marker = new BMap.Marker(point);map.addOverlay(marker);console.log(info);addClickHandler(info,marker,point);}, "上海市"); }我的想法是程序從上往下執行 每次==addClickHandler()里的info值都會不一樣,但是console.log(info)==每次的打印結果都是一樣的,我一個人默默搗鼓(debug)了半天,發現代碼的執行順序跟我預想的不一樣。我百度了半天找到了一種解決辦法,把循環體里的代碼用(function(){...})() 包裹,代碼如下,
for(var i=0;i<addrs.length;i++){(function(){var info = "<div>訂單數量:"+addrs[i][1]+"</div>";myGeo.getPoint(addrs[i][0], function(point){marker = new BMap.Marker(point);map.addOverlay(marker);console.log(info);addClickHandler(info,marker,point);}, "上海市");})() }這樣每次循環我的輸出結果都是不一樣的。雖然解決了問題 但是 至于為什么我還是不明白。希望知道的大佬能在我的評論區留言。
轉載于:https://www.cnblogs.com/zcj430430/p/10622206.html
總結
以上是生活随笔為你收集整理的js中的(function(){...})()的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 进入pe系统怎么合并分区 PE系统如何合
- 下一篇: Linux定时任务案例