国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識(shí)百科 - 正文

簡短幾句通俗解釋javascript的閉包_javascript技巧

來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 20:56:56
文檔

簡短幾句通俗解釋javascript的閉包_javascript技巧

簡短幾句通俗解釋javascript的閉包_javascript技巧:何謂沒有被釋放資源的棧區(qū)和預(yù)執(zhí)行的過程,用一個(gè)最常見的示例來解釋: 比方現(xiàn)在我們有一個(gè)ul,下面有很多個(gè)li,需要遍歷他們?yōu)樗麄兘壎▎螕羰录⒃邳c(diǎn)擊后將當(dāng)前下標(biāo)傳遞給另外一個(gè)function來進(jìn)行額外的處理: 代碼如下: for(var i=0; i agro
推薦度:
導(dǎo)讀簡短幾句通俗解釋javascript的閉包_javascript技巧:何謂沒有被釋放資源的棧區(qū)和預(yù)執(zhí)行的過程,用一個(gè)最常見的示例來解釋: 比方現(xiàn)在我們有一個(gè)ul,下面有很多個(gè)li,需要遍歷他們?yōu)樗麄兘壎▎螕羰录⒃邳c(diǎn)擊后將當(dāng)前下標(biāo)傳遞給另外一個(gè)function來進(jìn)行額外的處理: 代碼如下: for(var i=0; i agro

何謂沒有被釋放資源的棧區(qū)和預(yù)執(zhí)行的過程,用一個(gè)最常見的示例來解釋:
比方現(xiàn)在我們有一個(gè)ul,下面有很多個(gè)li,需要遍歷他們?yōu)樗麄兘壎▎螕羰录⒃邳c(diǎn)擊后將當(dāng)前下標(biāo)傳遞給另外一個(gè)function來進(jìn)行額外的處理:
代碼如下:
for(var i=0; i  agroup[i].onclick = function() {
    handler(i);
  }
}

執(zhí)行結(jié)果顯而易見對吧?在handler中,獲取傳遞過去的參數(shù)i,你看到的將全部是最大的下標(biāo),這個(gè)時(shí)候,我們通常用下面的辦法解決:
代碼如下:
for(var i=0; i  agroup[i].i = i
  agroup[i].onclick = function() {
    handler(this.i);
  }
}

那么在這里,先講一下this的指向問題,從通常來說,javascript中的this是指向當(dāng)前引用他的對象的。上面我們相當(dāng)為this新增了一個(gè)為i的屬性,他的值就是當(dāng)前的下標(biāo)值。
那么用閉包的方式如何解決這個(gè)問題?其實(shí)原理相同,我們需要預(yù)先的把i值保存起來,或叫作傳遞:
代碼如下:
for(var i=0; i  agroup[i].onclick = function(index) {
    return function() {
      handler(index);
    }
  }(i);
}

這個(gè)時(shí)候你會(huì)得到正確的下標(biāo),這樣做與增加i屬性有何雷同之處?也就是他們都預(yù)先把下標(biāo)i值傳遞或是儲(chǔ)存起來。在上面的演示中,預(yù)執(zhí)行onclick所引用的函數(shù),而這個(gè)
函數(shù)當(dāng)中返回了一個(gè)內(nèi)嵌函數(shù),形成一個(gè)沒有被釋放資源的棧區(qū),并在預(yù)執(zhí)行的時(shí)候?qū)值以參數(shù)的形式傳入這個(gè)作用域(解釋能力有問題,這句解釋不知道是否準(zhǔn)確,歡迎磚拍)。
綜上所述,閉包的作用通常是改變作用域或預(yù)執(zhí)行。應(yīng)該看官很明白了,上面?zhèn)€出的示例很局限,閉包的應(yīng)用范圍是很廣的,了解其因果,才能靈活的使用它。
auntion 2011-11-15
mail Auntion@gmail.com
QQ 82874972
原創(chuàng)文章,請尊重打字的辛勞和作者的權(quán)益,轉(zhuǎn)載時(shí)請不要?jiǎng)h除這里的作者信息。

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

簡短幾句通俗解釋javascript的閉包_javascript技巧

簡短幾句通俗解釋javascript的閉包_javascript技巧:何謂沒有被釋放資源的棧區(qū)和預(yù)執(zhí)行的過程,用一個(gè)最常見的示例來解釋: 比方現(xiàn)在我們有一個(gè)ul,下面有很多個(gè)li,需要遍歷他們?yōu)樗麄兘壎▎螕羰录⒃邳c(diǎn)擊后將當(dāng)前下標(biāo)傳遞給另外一個(gè)function來進(jìn)行額外的處理: 代碼如下: for(var i=0; i agro
推薦度:
標(biāo)簽: js 理解 javascript
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 欧美高清不卡 | 日本欧美韩国专区 | 日韩精品在线视频 | 成人免费久久精品国产片久久影院 | 国产成人精品免费视频大全可播放的 | 综合欧美日韩 | 成人看免费一级毛片 | 亚洲第一区视频在线观看 | 国产成人久久精品区一区二区 | 国产欧美在线视频免费 | 国产免费资源高清小视频在线观看 | 在线视频日韩 | 久久国语精品 | 亚洲精品成人久久久影院 | 久久91精品国产91久久小草 | 欧美国产日韩在线 | 成人国产精品久久久免费 | 国产亚洲精品一品区99热 | 亚洲欧洲综合 | 日本欧美国产精品第一页久久 | 日韩欧美在线综合网高清 | 国产成人+综合亚洲+天堂 | 热久久国产欧美一区二区精品 | 一级黄网站 | 日本久久香蕉一本一道 | 精品一区二区三 | 一级一级一级毛片免费毛片 | 久久综合中文字幕一区二区 | 日本高清一二三 | 久草精品在线观看 | 国产高清在线精品一区二区三区 | 久操精品在线观看 | 欧美日韩国产一区二区 | 一区二区电影 | 国产成人久久精品二区三区 | 亚洲另类在线观看 | 国产一区二区三区欧美 | 毛片视频网址 | 欧美日韩国产高清一区二区三区 | 亚洲 欧美 成人日韩 | 国内精品91久久久久 |