var db =(function() ;//建立乙個函式, 這個函式提供一些訪問data的資料的方法
return
function(key, val) //
getelse //
set}
//我們可以呼叫這個匿名方法
//返回這個內部函式,它是乙個閉包
})();
db('
x'); //
返回 undefined
db('
x', 1); //
設定data['x']為1
db('
x'); //
返回 1
//我們不可能訪問data這個object本身
//但是我們可以設定它的成員
1.當function裡巢狀function時,內部的function可以訪問外部function裡的變數。
2. 外部變數(環境變數?),
包括:2.1 全域性變數,包括dom。
2.2 外部函式的變數或函式。
如果乙個函式訪問了它的外部變數,那麼它就是乙個閉包。
從技術上來講,在js中,每個function都是閉包,因為它總是能訪問在它外部定義的資料。
沒return的閉包:
function closureexample() ,1000
); }
closureexample()
閉包例項:
function demo()return
add;
}var demeinstance =demo();
//console中調demeinstance,temp就一直加
js 閉包例項
var db function 建立乙個函式,這個函式提供一些訪問data的資料的方法 return function key,val getelse set 我們可以呼叫這個匿名方法 返回這個內部函式,它是乙個閉包 db x 返回 undefined db x 1 設定data x 為1 db x...
JS經典閉包例項
function fun n,o var a fun 0 a.fun 1 a.fun 2 a.fun 3 var b fun 0 fun 1 fun 2 fun 3 var c fun 0 fun 1 c.fun 2 c.fun 3 複製 問 三行a,b,c的輸出分別是什麼?首先來看第一行 var ...
js閉包例項彙總
本文是通過例項來幫助大家深刻理解js閉包,是篇非常不錯的文章,這裡推薦給大家,有需要的小夥伴可以參考下 js閉包 閉包前要了解的知識 1.函式作用域 1 js語言特殊之處在於函式內部可以直接讀取全域性變數 複製 如下 script type text j ascript varn 100 funct...