欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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);//調(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)文章

  • JS實現(xiàn)點擊文本框改變背景顏色

    JS實現(xiàn)點擊文本框改變背景顏色

    這篇文章主要為大家詳細介紹了JS實現(xiàn)點擊文本框改變背景顏色,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • javascript函數(shù)的call、apply和bind的原理及作用詳解

    javascript函數(shù)的call、apply和bind的原理及作用詳解

    javascript函數(shù)的call、apply和bind?本質(zhì)是用來實現(xiàn)繼承的,專業(yè)點說法就是改變函數(shù)體內(nèi)部this的指向,當一個對象沒有某個功能時,就可以用這3個來從有相關(guān)功能的對象里借用過來,文中通過代碼示例介紹的非常詳細,需要的朋友可以參考下
    2023-05-05
  • JavaScript訪問字符串中單個字符的兩種方法

    JavaScript訪問字符串中單個字符的兩種方法

    這篇文章主要介紹了JavaScript訪問字符串中單個字符的兩種方法,本文分別講解了索引方式訪問單個字符串、charAt()函數(shù)訪問單個字符以及兩種方式的不同,需要的朋友可以參考下
    2015-07-07
  • JavaScript實現(xiàn)打地鼠小游戲

    JavaScript實現(xiàn)打地鼠小游戲

    這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)打地鼠小游戲的相關(guān)代碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • BootStrapValidator初使用教程詳解

    BootStrapValidator初使用教程詳解

    bootstrap能夠增加兼容性的強大框架,在項目中用到了數(shù)據(jù)驗證功能,今天小編就抽空給大家介紹下BootStrapValidator初使用教程詳解,一起看看吧
    2017-02-02
  • 讓FireFox支持innerText的實現(xiàn)代碼

    讓FireFox支持innerText的實現(xiàn)代碼

    DHTML非標準屬性innerText在FireFox中的使用
    2009-12-12
  • Rxjs?中處理錯誤和抓取錯誤的代碼案例

    Rxjs?中處理錯誤和抓取錯誤的代碼案例

    這篇文章主要介紹了Rxjs?中怎么處理和抓取錯誤,本文,我們學習了如何使用?catchError?在數(shù)據(jù)流中抓取錯誤,怎么去修改和返回?observable,或者使用?EMPTY?不去觸發(fā)組件中的錯誤,需要的朋友可以參考下
    2022-08-08
  • 返回對象在當前級別中是第幾個元素的實現(xiàn)代碼

    返回對象在當前級別中是第幾個元素的實現(xiàn)代碼

    我就是想怎么獲取 每個層 相對于父級層 是第幾個,需要的朋友可以參考下。
    2011-01-01
  • 基于Ionic3實現(xiàn)選項卡切換并重新加載echarts

    基于Ionic3實現(xiàn)選項卡切換并重新加載echarts

    這篇文章主要介紹了基于Ionic3實現(xiàn)選項卡切換并重新加載echarts,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-09-09
  • js實現(xiàn)簡單選項卡制作

    js實現(xiàn)簡單選項卡制作

    這篇文章主要為大家詳細介紹了js實現(xiàn)簡單選項卡制作,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08

最新評論