成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

關(guān)于for循環(huán)中利用索引執(zhí)行函數(shù)的問題(閉包)

Xufc / 2270人閱讀

摘要:第二種就是在點擊事件外加入立即執(zhí)行函數(shù),把當(dāng)做變量傳遞進點擊事件,這樣也可獲取到每次點擊的索引。

今天在前端技術(shù)群中看到有位初學(xué)朋友問了個問題,我貼一下代碼:
js:

var pList = document.getElementsByTagName("p");
for(var i=0;i

html:

1

2

3

4

5

他的想法是點擊每一個P標簽的時候獲取到點擊的p標簽的html,代碼看著沒什么問題,可實際報錯了~
這個問題估計大部分人一開始都遇到過,為什么這條語句不好使呢?
個人理解,頁面初始化的時候i就已經(jīng)從0走到了4,當(dāng)你點擊P的時候,此時i已經(jīng)變成了5,而pList[5]并不存在,所以會報undefined的錯誤,改法有兩種:
第一種把pList[i]改成this,當(dāng)p標簽被點擊時this直接代表p進行獲取html。
第二種就是:

var pList = document.getElementsByTagName("p");
for(var i=0;i

在點擊事件外加入立即執(zhí)行函數(shù),把i當(dāng)做變量傳遞進點擊事件,這樣也可獲取到每次點擊的索引。
這個如果深刻點說,就涉及到j(luò)s里至關(guān)重要的閉包環(huán)節(jié)了~
點擊事件在循環(huán)內(nèi)部,然而還想調(diào)用人家的變量,就像你在別人家看著人家主人在跑步,你還想用跑步機,那么你要么等人家跑完了,你用著人家“跑完”的跑步機(文中的i=5),要么你就讓主人給你同時在旁邊安裝一個一模一樣的跑步機,你們一起(立即執(zhí)行函數(shù))
粗略的寫完了,嘿嘿,歡迎一起探討問題指正錯誤,高手可以跳過,寫出來也是為了做個筆記,溫故而知新~

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/79739.html

相關(guān)文章

  • 循環(huán)異步&&循環(huán)閉包

    摘要:原文鏈接在這之前先要了解一下循環(huán)中和的區(qū)別是函數(shù)級作用域或者全局作用域,是塊級作用域看一個例子循環(huán)中的邏輯代碼函數(shù)下的輸出,全局下的不存在現(xiàn)在我們把換為循環(huán)中的邏輯代碼報錯了,不在函數(shù)作用域下,當(dāng)然肯定也不會再全局下因為和的這個區(qū)別當(dāng)然和的 原文鏈接在這之前先要了解一下 for循環(huán)中l(wèi)et 和var的區(qū)別 var 是函數(shù)級作用域或者全局作用域,let是塊級作用域看一個例子 fu...

    Near_Li 評論0 收藏0
  • 閉包學(xué)習(xí)與總結(jié)

    摘要:第一部分執(zhí)行代碼之后,返回了一個新的匿名函數(shù),此時在全局作用域調(diào)用匿名函數(shù)它不在是的屬性或者方法,此時調(diào)用者是因此輸出是??偨Y(jié)關(guān)于中的,記住誰調(diào)用,就指向誰要訪問閉包的,要定義個變量緩存下來。 前言: 這是一篇關(guān)于閉包函數(shù)的總結(jié)和筆記 希望對大家有點幫助 寫的不好的地方,也請大家多多指教 一: js中的命名函數(shù),匿名函數(shù),自調(diào)用函數(shù)和回調(diào)函數(shù) 1.命名函數(shù): 函數(shù)如果有名字,就...

    YanceyOfficial 評論0 收藏0
  • [ JS 進階 ] 閉包,作用域鏈,垃圾回收,內(nèi)存泄露

    摘要:執(zhí)行返回的內(nèi)部函數(shù),依然能訪問變量輸出閉包中的作用域鏈理解作用域鏈對理解閉包也很有幫助。早期的版本里采用是計數(shù)的垃圾回收機制,閉包導(dǎo)致內(nèi)存泄露的一個原因就是這個算法的一個缺陷。 關(guān)于閉包,我翻了幾遍書,看了幾遍視頻,查了一些資料,可是還是迷迷糊糊的,干脆自己動手來個總結(jié)吧 !歡迎指正... (~ o ~)~zZ 1. 什么是閉包? 來看一些關(guān)于閉包的定義: 閉包是指有權(quán)...

    clasnake 評論0 收藏0
  • 那些年,前端學(xué)習(xí)之路疑難雜癥(四):面試遇到3個問題概覽

    摘要:閉包能用來實現(xiàn)私有化和創(chuàng)建工廠函數(shù)等作用。關(guān)于閉包的常見面試題是這樣的寫一個函數(shù),循環(huán)一個整數(shù)數(shù)組,延遲秒打印這個數(shù)組中每個元素的索引。 文章來源:http://mp.weixin.qq.com/s/vs0... 前言 在公眾號上看到了這篇文章,覺得很有用,有助于理解JS學(xué)習(xí)中的一些重點難點。決定把它整理下發(fā)布出來。該文章主要介紹了JS中的三個問題。在以后的幾篇文章里,我會詳細介紹這三...

    gecko23 評論0 收藏0
  • 我所認識閉包

    摘要:哈哈,簡單粗暴的理解,不過也對,這樣確實是形成了閉包。但有一個方法可以幫我們在外部調(diào)取內(nèi)部的值,沒錯,這就是閉包我們先繼續(xù)看這道題,我將一步步解釋。第二點就是利用閉包的特點,增加某些的安全性。 (~ ̄(OO) ̄)ブ,閉包,一個面試長問的問題,本白也迷糊了很久。慢慢不斷地有了自己的一點認識,這里分享一下~~~廢話不多說,先看題: var output = (function () { ...

    _Suqin 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<