亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

JavaScript函數作用域問題

JavaScript函數作用域問題

牧羊人nacy 2018-08-17 10:09:38
關于函數的作用于問題,為什么會發生這種情況?
查看完整描述

1 回答

?
莫回無

TA貢獻1865條經驗 獲得超7個贊

第一個是閉包,loop1,loop2,loop3,loop4,loop5中的變量引用的變量i其實是同一個,都是父function(這里應該是全局作用域)中的i。
注意:它們引用的是同一個變量,都是循環中的那個i。
所以當for循環結束的時候,i已經是6了;
所以調用loop1的時候,又因為輸出的是i++(++在后,先引用,后加),即輸出6,但i已經是7了;
后面依此類推,分別輸出7,8,9,10.

第二個是匿名函數自執行,要注意跟第一個的區別。匿名函數自執行的方式可以看到,變量i以形參的形式傳遞到匿名函數內部了,所以在這個匿名函數中用到的i就不再是父function中的變量i了,完全是不同的兩個。而且由于匿名函數自執行的原因,5個loop分別引用的也是各自的i,互不相關。
注意:它們引用的不再是同一個變量,不再是循環中的那個i
后面的就跟前面差不多了,不再解釋

這個題目考的是閉包,可以查看閉包的相關資料。


查看完整回答
反對 回復 2018-09-26
  • 1 回答
  • 0 關注
  • 586 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號