最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript中通過(guò)閉包解決只能取得包含函數(shù)中任何變量最后一個(gè)值的問(wèn)題

 更新時(shí)間:2010年08月12日 10:23:58   作者:  
JavaScript中解決閉包只能取得包含函數(shù)中任何變量最后一個(gè)值的問(wèn)題
復(fù)制代碼 代碼如下:

<script type="text/javascript">
function createArray() {
var arr = new Array();
for (var i = 0; i < 10; i++) {
arr[i] = function () {
return i;
}
}
return arr;
}
var funcs = createArray();
for (var i = 0; i < funcs.length; i++) {
document.write(funcs[i]() + "<br />");
}
//以上輸出全部是i的最后一次的值(10),即會(huì)輸出10個(gè)10,顯然這不是我們想要的
//原因:因?yàn)槊總€(gè)函數(shù)都保存了createArray函數(shù)的活動(dòng)對(duì)象,所以他們引用的都是同一個(gè)i(按引用傳的值)
//解決方案:把按引用傳參修改為按值傳參
function createArray() {
var arr = new Array();
for (var i = 0; i < 10; i++) {
arr[i] = function (num) {
return function () {
return num;
}
} (i);//調(diào)用此匿名函數(shù)返回內(nèi)部匿名函數(shù),這里多了一步按值傳遞參數(shù)
}
return arr;
}
var funcs = createArray();
for (var i = 0; i < funcs.length; i++) {
alert(funcs[i]() + "<br />");
}
//以上輸出的為理想結(jié)果
</script>

相關(guān)文章

最新評(píng)論

洪泽县| 大宁县| 喀什市| 文昌市| 古丈县| 安新县| 涟水县| 颍上县| 吉林市| 康定县| 桐柏县| 定边县| 含山县| 宁津县| 榆林市| 慈溪市| 冷水江市| 新晃| 德安县| 汉沽区| 准格尔旗| 申扎县| 玛沁县| 壶关县| 黄山市| 搜索| 鲁山县| 孟州市| 鄂州市| 富源县| 克什克腾旗| 枝江市| 临清市| 灵璧县| 滦平县| 巴马| 隆林| 高台县| 张北县| 乐昌市| 海伦市|