閉包定義
在JavaScript中,當(dāng)一個(gè)內(nèi)部函數(shù)被其外部函數(shù)之外的變量引用時(shí),就形成了一個(gè)閉包。簡(jiǎn)單說(shuō),閉包就是能夠讀取其他函數(shù)內(nèi)部變量的函數(shù)。
閉包的作用:
1. 可以讀取函數(shù)內(nèi)部的變量
2. 讓這些變量的值始終保持在內(nèi)存中。
閉包簡(jiǎn)單應(yīng)用
例一:
function a() { var i = 0; function b() { console.log(++i); } return b;} var c = a(); //執(zhí)行完var c=a()后,變量c指向了函數(shù)b,再執(zhí)行c()后就會(huì)顯示i的值(為1)。c(); //輸出1例二:
(function() { var i = 0; return function(){ console.log(++i); }})()(); //輸出1例三:
(function(i) { return function(){ console.log(++i); }})(0)(); //輸出1例四:
for (var i = 0; i < 3; i++) { setTimeout((function(i) { return function() { console.log(i); }; })(i), 2000); console.log(i+10);} //輸出 10 11 12 (隔兩秒后)0 1 2例五:
for (var i = 0; i < 3; i++) { setTimeout((function(i) { return function() { console.log(i); }; })(i)(), 2000); console.log(i+10);} //立即輸出 0 10 1 11 2 12 ,(兩秒后運(yùn)行程序結(jié)束)以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注