js相關語法基礎 6 閉包

2021-09-03 10:00:32 字數 583 閱讀 1330

高階函式除了可以接受函式作為引數以外,還可以把函式作為結果值返回。

來實現乙個對array的求和。傳統方法。

function sum(arr))

}console.log(sum([1,2,3,4]));

不返回求和的結果,而返回求和的函式。

function lazy_sum(arr));

}return sum;

}var f = lazy_sum([1,2,3]);

console.log(f());

當我們呼叫lazy_sum時,返回的不是求和的結果,而是求和函式。呼叫函式f,才會真正計算。

當lazy_sum返回函式sum時候,相關引數和變數都儲存在返回的函式中,這種稱為閉包。

閉包詳解:

es6新增了一種新的函式,叫做箭頭函式

x => x * x; 相當於

function (x)
var res = (x) => 

console.log(res(5));

JS基礎 閉包

注 自由變數是既不是在本地宣告又不作為引數傳遞的一類變數。function a return b var b a b hello closure 定義乙個函式a a中定義了函式b a中返回b 執行a 把a的返回結果賦值給變數b 執行b 閉包會在父函式外部,改變父函式內部變數的值。所以,如果你把父函式...

JS基礎 變數 閉包

1.變數的作用域 變數可以是全域性的,也可以是區域性的,在談論全域性變數和區域性變數之間的區別時,我們其實是在討論變數的作用域 scope i.全域性變數 可以在指令碼的任何位置被引用。作用域是整個指令碼。ii.區域性變數 只存在於對它作出宣告的那個函式的內部,在那個函式外部是無法引用它的。作用域僅...

JS筆記六(JS閉包 運動相關 ES6相關)

閉包 閉包的第一層含義 訪問函式 冰箱 內部的變數 大象 可以通過在該函式定義另乙個函式 冰箱門,冰箱入口 來訪問。通過在f1函式內部定義函式f2,從而可以訪問到f1內部定義的變數num.這是最簡單的閉包形式。js閉包用途 1 乙個是可以讀取函式內部的變數 2 另乙個就是讓這些變數的值始終保持在記憶...