成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

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

Xufc / 2298人閱讀

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

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

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

html:

1

2

3

4

5

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

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

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/79739.html

相關(guān)文章

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

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

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

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

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

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

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

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

    gecko23 評(píng)論0 收藏0
  • 我所認(rèn)識(shí)閉包

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

    _Suqin 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<