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

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

關(guān)于JS閉包的問題

關(guān)于JS閉包的問題

NodeOS 2016-03-05 15:46:05
在《JavaScript高級程序設(shè)計(jì)(第3版)》(Nicholas C.Zakas 著) 的“7.2閉包”一節(jié)中,作者為了說明“閉包所保存的是整個(gè)變量對象,而不是某個(gè)特殊的變量”,舉了一個(gè)例子,代碼如下:function?createFunctions(){ ????var?result?=?new?Array(); ???? ????for?(var?i=0;i<10;i++){ ????????result[i]?=?function(){ ????????????return?i; ????????}; ????} ???? ????return?result; }作者說,這個(gè)函數(shù)設(shè)計(jì)的目的是返回一個(gè)數(shù)組{0,1,2,3,4,5,6,7,8,9},但是實(shí)際上會返回{10,10,10,10,10,10,10,10,10,10}。那么問題來了,為什么我去調(diào)試,返回的是:{ function(){return i;} ,?function(){return i;} ,?function(){return i;} ,?function(){return i;} ,?function(){return i;} ,?function(){return i;} ,?function(){return i;} ,?function(){return i;} ,?function(){return i;} ,?function(){return i;} }WTF!!!!!!!P.S. ?我用的是alert和document.write命令,代碼如下:??function?test(){ ????var?result?=?new?Array(); ???? ????for?(var?i=0;i<10;i++){ ????????result[i]?=?function(){ ????????????return?i; ????????}; ????} ?? alert(result); ?? //document.write(result);?試了也不行,也沒解析內(nèi)嵌的匿名函數(shù)。 ??}
查看完整描述

1 回答

已采納
?
慕郎_蓮華

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

沒錯(cuò)的~~~result的值 都是一個(gè)函數(shù)~return 10;

var?a?=?createFunctions();?//?得到返回的result

for(var?i?=?0;?i?<?a.length;?i++){
	console.log(a[i]())//每個(gè)值都是函數(shù)function(){return?10;},執(zhí)行就輸出10
}


查看完整回答
1 反對 回復(fù) 2016-03-05
  • NodeOS
    NodeOS
    謝謝!那我是不是可以這么理解:這個(gè)數(shù)組中實(shí)際上引用了十個(gè)函數(shù),直接對數(shù)組對象進(jìn)行alert等操作時(shí),十個(gè)函數(shù)未被解析,而對數(shù)組中的每一項(xiàng)進(jìn)行alert等操作時(shí),這些函數(shù)才會被解析,并返回{10,10,10,10,10,10,10,10,10,10}。
  • 慕郎_蓮華
    慕郎_蓮華
    恩 你直接打印數(shù)組 就是顯示她的值~function,需要執(zhí)行
  • NodeOS
    NodeOS
    不好意思,原來是基礎(chǔ)概念理解的有問題! 多虧了你的解析,不然我對函數(shù)的理解就一直錯(cuò)下去了!
點(diǎn)擊展開后面1
  • 1 回答
  • 0 關(guān)注
  • 1505 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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