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

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

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

<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),即會輸出10個10,顯然這不是我們想要的
//原因:因為每個函數(shù)都保存了createArray函數(shù)的活動對象,所以他們引用的都是同一個i(按引用傳的值)
//解決方案:把按引用傳參修改為按值傳參
function createArray() {
var arr = new Array();
for (var i = 0; i < 10; i++) {
arr[i] = function (num) {
return function () {
return num;
}
} (i);//調用此匿名函數(shù)返回內部匿名函數(shù),這里多了一步按值傳遞參數(shù)
}
return arr;
}
var funcs = createArray();
for (var i = 0; i < funcs.length; i++) {
alert(funcs[i]() + "<br />");
}
//以上輸出的為理想結果
</script>

相關文章

最新評論

汕尾市| 久治县| 安顺市| 隆林| 将乐县| 通州市| 皋兰县| 南京市| 内黄县| 平遥县| 万源市| 盐池县| 宣恩县| 南京市| 苍南县| 安西县| 万年县| 安新县| 扎赉特旗| 沂水县| 铁力市| 山东省| 海城市| 台中市| 上杭县| 唐山市| 车险| 福建省| 阿荣旗| 浮梁县| 双桥区| 罗田县| 万荣县| 赤峰市| 犍为县| 连南| 会理县| 徐汇区| 富源县| 新乐市| 新河县|