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

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

js菜鳥的提問

js菜鳥的提問

onaug6th 2016-12-01 15:57:42
請問這個函數的流程是?怎么求出的結果function Foo(){????????var i = 0; ??? return function()????{?????console.log(i++);????????}}?? var f1 = Foo(),?f2 = Foo();f1();f1();f2();
查看完整描述

3 回答

已采納
?
GdinKing

TA貢獻32條經驗 獲得超9個贊

?return function()?{?? console.log(i++); ? ?} 表示返回的是一個函數,f1()就是調用這個函數,一開始i=0,打印出來是0,第二次執行f1()后是針對同一個對象i操作的,i加了1,所以打印1,第三個執行f2(),此時不再是對之前的對象i操作,而是新的對象,所以i還是0


查看完整回答
2 反對 回復 2016-12-01
  • onaug6th
    onaug6th
    謝謝你
  • GdinKing
    GdinKing
    這是ES5的缺陷,連續調用同一個函數會使用函數里定義的同一個對象,去了解下ES6,里面重新定義了局部變量和全局變量的范圍以及作用域
?
蜂之谷

TA貢獻564條經驗 獲得超863個贊

自己試試不就知道了 ?0 ?1 ?0

查看完整回答
1 反對 回復 2016-12-01
  • onaug6th
    onaug6th
    請問這個是放哪里編譯的?。?/div>
  • 蜂之谷
    蜂之谷
    保存為html格式文件,在瀏覽器中打開,F12控制臺中看log
  • 3 回答
  • 0 關注
  • 1591 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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