Js函式閉包的理解及閉包存在一些問題的解決

2022-07-01 19:45:11 字數 798 閱讀 8469

可以在函式外部讀取函式內部成員

讓函式內成員始終存活在記憶體中

//閉包的問題

var arr = ;

for(var i = 0;i <= 10;i ++)}​

//應該是輸出對應下標

arr[0]();//11

arr[1]();//11

arr[2]();//11

這個**只是想實現根據arr下標,console.log出相應的值。但是當呼叫時,for迴圈中的i已經執行完了,i = 11。i的作用域太大了,執行時,i的結果就已經執行完了。

解決方法就是形成乙個閉包,將i的作用域從全域性縮小變成區域性作用域,arr[i]()每執行一次,i的值就執行一次,使i的值依舊可以使用。

//解決

var arr = ;

for (var i = 0; i <= 10; i++)

})(i); }​

//應該是輸出對應下標

arr[0]();//0

arr[1]();//1

arr[2]();//2

JS閉包理解

下圖例項 body ul li 1 li li 2 li li 3 li ul body html script vara document.getelementsbytagname li for vari 0 i a.length i i 如何從外部讀取區域性變數 functionvisitinn...

JS閉包理解

js閉包理解 在很多面試題中都會問什麼是js的閉包,為什麼需要使用閉包,使用閉包的優缺點!我在面試其他人的時候也喜歡問這個問題,回答的也是千奇百怪,現在就總結一下我對閉包的理解。閉包是一種概念,這種概念比較複雜,很多地方的定義不盡相同,我的理解是 閉包是能讀取函式內部變數的函式,也就是定義在函式內部...

js閉包理解

什麼是閉包?這兩天我在網上翻閱了大量的閉包理解部落格,有優秀的也有生搬硬套的。歸根揭底,還是理解的問題。我曾經聽老師講閉包後,還是一臉疑惑,然後下課去網上查閱資料,仔細研究之後知道是裡面要套乙個函式返回父級變數。這次我就講解一下個人理解的閉包。為什麼會出現閉包?首先,我們先想下,我現在需要乙個一直用...