JavaScript閉包的簡單應(yīng)用
閉包定義
在JavaScript中,當(dāng)一個(gè)內(nèi)部函數(shù)被其外部函數(shù)之外的變量引用時(shí),就形成了一個(gè)閉包。簡單說,閉包就是能夠讀取其他函數(shù)內(nèi)部變量的函數(shù)。
閉包的作用:
1. 可以讀取函數(shù)內(nèi)部的變量
2. 讓這些變量的值始終保持在內(nèi)存中。
閉包簡單應(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é)束)
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
ECharts調(diào)用接口獲取后端數(shù)據(jù)的四種方法總結(jié)
echarts是我們經(jīng)常用到的數(shù)據(jù)可視化圖形,但是后端反饋給我們的數(shù)據(jù)經(jīng)常是數(shù)組包對(duì)象的集合類型,下面這篇文章主要給大家介紹了關(guān)于ECharts調(diào)用接口獲取后端數(shù)據(jù)的四種方法,需要的朋友可以參考下2022-11-11
JS實(shí)現(xiàn)新浪微博效果帶遮罩層的彈出框代碼
這篇文章主要介紹了JS實(shí)現(xiàn)新浪微博效果帶遮罩層的彈出框代碼,涉及JavaScript響應(yīng)鼠標(biāo)事件動(dòng)態(tài)操作頁面元素的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10
修復(fù)ie8&chrome下window的resize事件多次執(zhí)行
window.onresize 事件 專用事件綁定器 v0.1,用于解決 lte ie8 & chrome 及其他可能會(huì)出現(xiàn)的 原生 window.resize 事件多次執(zhí)行的 BUG.2011-10-10

