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

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

關于JS閉包的一個疑惑

關于JS閉包的一個疑惑

MYYA 2019-02-15 18:16:55
       function f1() {            var n = 999;            f2 = function () {                n += 1;                console.log(n);            }        }        f1();        f2();如上代碼中,定義了一個函數f1,內部又定義了一個匿名函數(也就是閉包),并且賦值給f2,按理來說,f2前面不是要加var標示來聲明一個變量嗎?但是我加上var后,卻報錯了,提示錯誤:f2 is not defined。為什么呢?另外,為什么上面代碼在全局環境中能夠訪問在f1內部定義的f2?一共兩個疑惑,先謝了。
查看完整描述

1 回答

?
qq_笑_17

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

你的兩個疑惑其實都是一個問題。
f2沒有寫var的時候,相當于定義了一個全局變量,所以你當然可以在外部訪問f2;
f2寫上var之后,它就成了f1私有的了,當然就不能在外面訪問f2啦。

查看完整回答
反對 回復 2019-02-19
  • 1 回答
  • 0 關注
  • 300 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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