js 閉包例項

2021-09-07 14:35:13 字數 893 閱讀 1997

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