JS 閉包練習

2022-08-31 12:09:10 字數 469 閱讀 8251

首先,第乙個輸出,因為前置運算,i要先參與輸出,然後再自增,所以輸出為0

第二個輸出,因為f1和f2是不同的函式,不共享i變數,所以輸出也為0

第三個輸出,因為是f1,共享i,所以i加了1,輸出為1

let foo = function()}

let f1 =foo();

let f2 =foo();

f1();//0

f2();//

0f1();//

1

首先,從函式和下面的閉包可以看出,第一行和第二行**是迷惑人的,正常思考,輸出就是。

let x = 100;

let y = 200;

let funa = function

(x)

return

funb;

}let f = funa(101);

f();

JS閉包 練習題

牛客網關於閉包的一道題的解析 實現函式 makeclosures,呼叫之後滿足如下條件 1 返回乙個函式陣列 result,長度與 arr 相同 2 執行 result 中第 i 個函式,即 resulti,結果與 fn arr i 相同 示例1 輸入 1,2,3 function x 輸出 4 v...

說說js閉包

js閉包涉及到作用域,js的作用域有兩種,全域性變數和區域性變數,全家變數就是在函式外宣告的,區域性變數是在函式內宣告的,函式內部可以直接讀取全域性變數 但是函式外部自然無法讀取函式內的區域性變數 函式內部宣告變數的時候,要用var不然就是個全域性變數 有時候需要得到函式內的區域性變數 濫用閉包會可...

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...