通俗的講一下 閉包

2021-09-13 19:40:52 字數 1100 閱讀 8789

閉包是指有權訪問另乙個函式作用域中的變數的函式。建立閉包的常見方式,就是在乙個函式內部建立另乙個函式。

常見閉包出現的問題

function createfunction()

}console.log('i 的值:'+ i)

return result;

}

createfunction() 返回的結果

當我們呼叫 createfunction()[1]();時返回的是

事實上arr的每一項呼叫的結果都是10

為什麼呢?

事實上你在呼叫每一項時,其實是這樣的

function childfunction()

}

這個 i 來自它的父級作用域

或者我們這麼說,return i; 中的 i 跟 for迴圈中的 i 其實是不一樣的。因為此時的

函式並沒有呼叫,而當你呼叫的時候,它才去作用域鏈搜尋 i 的值。而此時 i = 10;

我們嘗試在返回之前更改 i =9999;

得到證明。

那麼要怎樣才能讓它返回我們預期的那樣呢?

我們只要把 result [i] 中的 i 當做引數傳進函式

這一段**到底發生了什麼?我們讓 外層 的函式傳入引數並立即執行,此時裡面的 num 等於傳入的引數, 等到最內層函式呼叫的時候,它會拿到外層的num。

最後,很多人以為閉包指的是乙個函式被乙個函式返回,其實不是。它指的是 有權訪問另乙個函式作用域中的變數的函式,跟是不是被 返不返回並沒有關係。我們一般讓其返回乙個函式,是希望這個閉包能按照我們的預期進行。

通俗的解釋一下正規化

正規化是什麼呢?比如拷貝來一段瞅瞅 正規化是符合某一種級別的關係模式的集合。關聯式資料庫中的關係必須滿足一定的要求,滿足不同程度要求的為不同正規化。我知道不用說,你肯定一臉懵逼!因為我也是!下面我就通俗的來解釋一下三大正規化吧,不喜勿噴,個人理解 第一正規化 其實就是讓列保持原子性,原子性就是不能再...

python通俗易懂的閉包

檢視官方解釋,閉包看起來確實不好理解,我通過查資料將閉包做乙個通俗的解釋 閉包是函式裡面再次定義乙個函式,外部的函式暫且稱為外函式,內部的函式暫且稱為內函式。外函式的返回值為內函式和它的環境,它的環境就是外函式的區域性變數 也是內函式的外部變數 當前的值,比如當前變數的值,很多教程裡將閉包的時候會用...

講一下git的相關問題

首先git是來進行專案版本控制的。git地常用命令有哪些?有git add,git status,git commit m,git push,git pull等。如果我們需要多人操作同乙個檔案,出現衝突,那麼衝突該如何解決?當遇到多人協作修改同乙個檔案時出現衝突,就需要先將遠端檔案先git pull...