函式4 函式表示式 閉包

2022-05-27 03:15:10 字數 344 閱讀 3235

閉包:函式中的函式;用於獲取函式內部變數的函式;

function a()

return b;

}console.log(info) // 報錯(info is not defined)

console.log(a()()) // "hello"

在全域性作用域中,如果想訪問a函式中的變數info,直接訪問會報錯,因為a函式體是個作用域,父作用域無法訪問子作用域中的變數;

但是可以通過閉包的形式訪問a函式中的變數;

注意:

由於閉包會攜帶包含它的函式的作用域(儲存著乙個作用域鏈),因此會占用更多的記憶體;

函式表示式 閉包

有權訪問另乙個函式作用域內變數的函式。常見的方式就是在乙個函式的內部建立另外乙個函式。functiona b a a內的b可以訪問a的內部變數color 閉包只能取到包含函式中任何變數的的最後乙個值。function a return arr console.log a 0 10 console.l...

函式 函式表示式 作用域 閉包

var f function function f 函式宣告和函式表示式的主要區別是,函式宣告會被前置,而函式表示式作為變數,會被提公升。下方是js執行時的邏輯 前置和變數提公升 var f function f f function var f function function f f 上方 直...

函式表示式(1) 含閉包

定義函式的方法有兩種,一種是函式宣告,一種是函式表示式 函式宣告 function 函式表示式 他們兩個不同的地方在於,函式宣告會有乙個提公升 相當於會在執行 前讀取函式宣告 而函式表示式不會有 函式宣告 function 函式表示式 在函式表示式中,就像變數一樣,會被賦予undefined值,而不...