乙個閉包的簡單例子

2021-07-29 11:47:53 字數 462 閱讀 1597

最近有很多朋友都在問我  閉包是什麼  開始自己也是懵逼的  琢磨了下  才有了了解  下面就為大家簡單的實現以下:

如下:

var a=(function(a))(a);

// to do

console.log(a);

// 定義乙個匿名函式,把a傳遞進去,a是undefined

// 因為匿名函式本身沒有返回值,如果是

var a=(function(a))(a);

console.log(a);// a此時就是1

// 如果要自動執行這個匿名函式的同時又賦值給a,那就應該是這樣的:

var i = 0;// 計數器

var a=(function(a))(a);// 這裡跑一次

a();//被呼叫一次 

總的說就是 函式外部訪問函式內部的值 .

從乙個小例子再次理解閉包

function fun var f1 fun f2 fun console.log f1 因為f1 fun 執行 所以f1 f2 都等於 fun return 出的函式 function console.log f2 f1 0 f1 是執行 f1這個函式 i 先執行在相加所以i 0 f1 1 在此...

閉包的乙個坑

閉包的乙個坑 for var i 0 i 5 i 5 上面這個 塊會列印五個5出來,而我們預想的結果是列印 1 2 3 4 5。之所以會這樣,是因為 settimeout 中的 i 是對外層 i 的引用。當 settimeout 的 被解釋的時候,執行時只是記錄了 i 的引用,而不是值。而當 set...

JS閉包的最簡單例子使用

function foo function bar fn 1000 wait hello,closure 將乙個內部函式 名為 timer 傳遞給 settimeout timer 具有涵蓋 wait 作用域 的閉包,因此還保有對變數 message 的引用。wait 執行 1000 毫秒後,它的內...