js的閉包的一個(gè)示例說明
function outside()
{
var myVar = 1;
return function (){
alert(myVar);
}
}
var t = outside();
t();
js中 某個(gè)函數(shù)的內(nèi)部函數(shù)在該函數(shù)執(zhí)行結(jié)束后仍然可以訪問這個(gè)函數(shù)中定義的變量,這稱為閉包(Closure)
下面例子是給三個(gè)錨anchor1,anchor2,anchor3添加onclick事件,可以預(yù)期的效果是點(diǎn)擊錨點(diǎn)顯示相應(yīng)的錨點(diǎn)ID,實(shí)際上卻都是顯示"My id is anchor4", 這個(gè)就是閉包作用引起的邏輯上的bug,添加事件的函數(shù)執(zhí)行完后i的值為4,
ADS.addEvent(window, 'load', function(W3CEvent) {m
for (var i=1 ; i<=3 ; i++ ) {
var anchor = document.getElementById('anchor' + i);
ADS.addEvent(anchor,'click',function() {
alert('My id is anchor' + i);
});
}
});
相關(guān)文章
JavaScript使用Blob文件流下載txt、pdf、圖片等文件,自定義下載文件名
JavaScript使用Blob文件流下載txt、pdf、圖片等格式文件,同時(shí)自定義下載文件名,2023-08-08JS簡單實(shí)現(xiàn)DIV相對(duì)于瀏覽器固定位置不變的方法
這篇文章主要介紹了JS簡單實(shí)現(xiàn)DIV相對(duì)于瀏覽器固定位置不變的方法,涉及javascript針對(duì)頁面位置的運(yùn)算與動(dòng)態(tài)變換技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06three.js著色器材質(zhì)的內(nèi)置變量示例詳解
這篇文章主要給大家介紹了關(guān)于three.js著色器材質(zhì)內(nèi)置變量的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用three.js具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08Cpage.js給組件綁定事件的實(shí)現(xiàn)代碼
Cpage.js是一款輕量級(jí)的Mvvm框架,使用TypeScript(JavaScript的超集)開發(fā)。下面通過本文給大家分享Cpage.js給組件綁定事件的實(shí)現(xiàn)代碼,需要的的朋友參考下吧2017-08-08Javascript+XMLHttpRequest+asp.net無刷新讀取數(shù)據(jù)庫數(shù)據(jù)
Javascript+XMLHttpRequest+asp.net無刷新讀取數(shù)據(jù)庫數(shù)據(jù)2009-08-08javascript:void(0)點(diǎn)擊登錄沒反應(yīng)怎么解決
這篇文章給大家介紹javascript:void(0)點(diǎn)擊登錄沒反應(yīng)怎么解決,解決辦法是巧用批處理解決IE不支持JavaScript等問題,需要的朋友參考下2015-11-11如何判斷微信內(nèi)置瀏覽器(通過User Agent實(shí)現(xiàn))
在進(jìn)行微信公眾賬號(hào)開發(fā)的時(shí)候,需要知道當(dāng)前的瀏覽器是微信內(nèi)置的瀏覽器,那么如何判斷呢?這是就只有通過瀏覽器的User Agent來進(jìn)行判斷了2014-09-09JavaScript深拷貝和淺拷貝概念與用法實(shí)例分析
這篇文章主要介紹了JavaScript深拷貝和淺拷貝概念與用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了javascript深拷貝與淺拷貝的概念、原理、用法及相關(guān)操作技巧,需要的朋友可以參考下2018-06-06