国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > WEB開發(fā) > 正文

JavaScript閉包學(xué)習(xí)

2024-04-27 15:12:23
字體:
供稿:網(wǎng)友

昨天在掘金上看到一篇關(guān)于閉包基礎(chǔ)學(xué)習(xí)的文章javaScript閉包入門

我對(duì)閉包的理解:一個(gè)函數(shù)嵌套另一個(gè)函數(shù),子函數(shù)返回父函數(shù)的值,使得在函數(shù)外部也可以訪問到函數(shù)內(nèi)部的變量。

其中有一個(gè)梨子:

function buildList(list) {    var result = [];    for (var i = 0; i < list.length; i++) {        var item = 'item' + i;        result.push( function() {console.log(item + ' ' + list[i])} );//匿名閉包函數(shù)    }    return result;}function testList() {    var fnlist = buildList([1,2,3]);    // 使用j是為了防止搞混---可以使用i    for (var j = 0; j < fnlist.length; j++) {        fnlist[j]();    }} testList() //輸出 "item2 undefined" 3 次
result.push( function() {console.log(item + ' ' + list[i])}這一行給result數(shù)組添加了三次函數(shù)匿名引用。如果你不熟悉匿名函數(shù)可以想象成下面代碼:pointer = function() {console.log(item + ' ' + list[i])};result.push(pointer);注意,當(dāng)你運(yùn)行上述代碼的時(shí)候會(huì)打印"item2 undefined"三次!和buildList的局部變量對(duì)應(yīng)的閉包只有一個(gè)。
當(dāng)匿名函數(shù)在fnlist[j]()這一行調(diào)用的時(shí)候,他們使用同一個(gè)閉包,而且是使用的這個(gè)閉包里i和item現(xiàn)在的值(循環(huán)結(jié)束后i的值為3,item的值為'item2')。
注意:我們從索引0開始,所以item最后的值為item2',i的值會(huì)被i++增加到3 。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 禹城市| 丰县| 桑植县| 高邑县| 阳朔县| 丹凤县| 西青区| 丹阳市| 万安县| 郧西县| 宁都县| 从化市| 内江市| 临武县| 石柱| 富顺县| 南通市| 和平县| 白银市| 滨州市| 抚宁县| 丰县| 芜湖县| 仲巴县| 双辽市| 莱州市| 宜宾市| 安塞县| 奉新县| 贵溪市| 封丘县| 合山市| 峨眉山市| 大城县| 天峻县| 巴塘县| 通化县| 延津县| 中方县| 崇礼县| 衡东县|