国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 岫岩| 岱山县| 鸡泽县| 贵州省| 贺兰县| 八宿县| 谢通门县| 天水市| 衡阳市| 禄丰县| 奉贤区| 衡阳县| 汕尾市| 绥阳县| 临沭县| 蕲春县| 炎陵县| 嘉鱼县| 定远县| 若羌县| 巴里| 通海县| 县级市| 许昌市| 库伦旗| 吉木萨尔县| 札达县| 澜沧| 栾川县| 北川| 平和县| 荆门市| 阳新县| 丹巴县| 盐亭县| 绥阳县| 桐城市| 钦州市| 望江县| 安丘市| 尼勒克县|