第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

一道面試題-求解

一道面試題-求解

隔江千里 2018-07-31 22:21:47
讀一下程序,判斷輸出結(jié)果,并分析原因var apples = ["apple1", "apple2", "apple3"];for (var i = 0, funs = []; i < 3;i ++){    funs[i] = function(){        console.log(apples[i]);    }}funs[0]();funs[1]();funs[2]();
查看完整描述

3 回答

?
翻過(guò)高山走不出你

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超3個(gè)贊

閉包解決,經(jīng)典問(wèn)閉包的方式,i是全局變量,在調(diào)用時(shí)其值為3,所以全部是undefined,目前的基本可以采用let來(lái)解決了

查看完整回答
反對(duì) 回復(fù) 2018-08-04
?
慕神8447489

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超1個(gè)贊

閉包是一個(gè)自帶運(yùn)行環(huán)境的函數(shù),題中的閉包function函數(shù)本地作用域中沒有i這個(gè)變量,只能沿著作用域鏈往上查找,而上級(jí)作用域中的i最終為3。

var apples = ["apple1", "apple2", "apple3"];

for (var i = 0, funs = []; i < 3;i ++){

    funs[i] = (function(x){

        return function(){

        console.log(apples[x]);

        }

    })(i);

}

funs[0]();

funs[1]();

funs[2]();

將代碼改成這樣的話,就可以分別輸出。 
為什么這樣就可以了呢?

因?yàn)榘裪每次的值都放到上級(jí)作用域鏈里面了。


查看完整回答
反對(duì) 回復(fù) 2018-08-04
  • 3 回答
  • 0 關(guān)注
  • 1022 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)