掃盲打基 理解js的閉包

2021-08-17 07:46:53 字數 448 閱讀 3859

1、解釋:js因為函式裡面還可以定義函式,閉包就是函式體內的搜尋變數作用域時候,可以往關聯的父級函式搜尋變數的一種特權。

當乙個內部函式被其外部函式之外的變數引用時,就形成了乙個閉包。

2、範例:

function add(a){

return function add2(b){

return function add3(c){

return a + b + c;

var sum = add(2);

var sum2 = sum(3);

var sum3 = sum2(4);

alert(sum3);   ///9

3、閉包的使用場景或者優點:當我們需要在模組中定義一些變數,並希望這些變數一直儲存在記憶體中但又不會「汙染」全域性的變數時,就可以用閉包來定義這個模組。

4、閉包的缺點或者風險點:有記憶體洩漏的風險

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閉包理解

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