国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

javascript - 回調(diào)函數(shù)如何訪問當(dāng)前函數(shù)作用下的值

瀏覽:98日期:2023-09-19 09:39:21

問題描述

我在函數(shù)中定義了一個(gè)數(shù)組變量,里面存有6個(gè)元素,然后在該函數(shù)中調(diào)用回調(diào)函數(shù),在回調(diào)函數(shù)中無法訪問數(shù)組變量的值,但是可以訪問length屬性。感覺很迷惑,不知道該怎么解決。

for(var i=0;i<bookARR.length;i++){//在該書中寫入 有借圖書館id//因?yàn)閳D書館表需要所有書籍的_id,所以檢測有時(shí),記錄idconsole.log('在外面'+bookARR[i]);//9787539989891 9787533946777 9787569914078 9787513316286 9787218113180 9787535491978 Book.getBookByISBN(bookARR[i],function(err,book){ if(!book||err){console.log('huidiao'+bookARR.length);//6console.log('在里面'+bookARR[i]);//undefined undefined undefined undefined undefined undefinednewBook.push(bookARR[i]); }else{newBook_id.push(book._id); } ep.emit(’examine’);}) }

Book.getBookByISBN()是我在其他模塊定義的函數(shù)

問題解答

回答1:因?yàn)?p>for (var i = 0; i<10; i++) { setTimeout(function(){console.log(i)});}for (var i = 0; i<10; i++) { (function(i){ setTimeout(function(){console.log(i)}); })(i)}所以

for(var i=0;i<bookARR.length;i++){ (function(i) {Book.getBookByISBN(bookARR[i],function(err,book){ if(!book||err){console.log('huidiao'+bookARR.length)console.log('在里面'+bookARR[i]);newBook.push(bookARR[i]); }else{newBook_id.push(book._id); } ep.emit(’examine’);}) })(i);}回答2:

在callback 中帶上 bookARR[i]

回答3:

前面已經(jīng)說了原因了,其實(shí)就是在你定義Book.getBookByISBN()這個(gè)函數(shù)里面的回調(diào)調(diào)用的地方傳入bookArr[i]就好了,理解一下形參和實(shí)參

回答4:

這是個(gè)典型的異步問題,i的作用域還在其中。因?yàn)楫惒降饶?getBookByISBN 方法調(diào)用callback的時(shí)候 i=bookARR.length。這已經(jīng)越界了,所以是undefined.

解決方:1.閉包2.let

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 伊人色在线观看 | 99视频国产在线 | 欧美成年人视频 | 欧美精品久久久亚洲 | 国产精品午夜波多野结衣性色 | 多人伦精品一区二区三区视频 | 一级黄片毛片 | 欧美亚洲国产人成aaa | 国产真实乱子伦精品视手机观看 | 久久久久久久99精品免费 | 成人欧美日韩高清不卡 | 91成人免费在线视频 | 视频一区在线观看 | 亚洲成色在线 | 日韩一级视频 | cao在线| 毛片手机在线视频免费观看 | 精品一区二区久久久久久久网站 | 亚洲在线一区二区三区 | 免费特黄一级欧美大片 | 亚洲国产天堂在线网址 | 国产一级毛片国语版 | 一区二区精品在线 | 国产大片中文字幕在线观看 | 成人免费久久精品国产片久久影院 | 中文精品久久久久国产不卡 | 在线观看日韩www视频免费 | a黄毛片| 久久综合婷婷 | 国产九九在线观看播放 | 国产成人综合一区精品 | 国产日韩精品在线 | 亚洲欧美专区精品久久 | 永久免费观看午夜视频在线 | 国产真实一区二区三区 | 九色国产在线 | 欧美成人三级伦在线观看 | 99精品热女视频专线 | 欧美性色生活免费观看 | 久久久久久久国产精品 | 黄色成人在线观看 |