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

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

求助關(guān)于閉包和提升

求助關(guān)于閉包和提升

慕的地6264312 2019-04-19 16:29:42
functionf1(){    varn=999;    nAdd=function(){    n+=1    };    functionf2(){      alert(n);    }    returnf2;  }  varresult1=f1();varresult2=f1();  result1();//999result2();//999  nAdd(); result1();//是999而不是1000,這是為何呢?result2();//1000哪位大神可以解釋下?還有如果以nAdd=function(){    n+=1    };這種形式在函數(shù)內(nèi)定義了一個全局變量,這個全局變量也可以訪問n嗎?不是全局變量不能訪問函數(shù)內(nèi)的變量嗎?還有我記得有書上面說的是函數(shù)的作用域不是是取決于函數(shù)定義的時候而不是調(diào)用的時候的作用域嗎?這個全局變量nAdd不就是相當(dāng)于定義的時候是全局嗎?所以不應(yīng)該不能訪問n嗎?這一塊一直都不太懂,希望哪位大神可以教教我!謝謝
查看完整描述

2 回答

?
波斯汪

TA貢獻(xiàn)1811條經(jīng)驗 獲得超4個贊

函數(shù)中變量的作用域是在定義的決定,而不是在在執(zhí)行的時候。也就是
nAdd=function(){
 n+=1
};
這個賦值語句執(zhí)行完畢后,變量n就是函數(shù)f1中的變量n,雖然nAdd是一個全局變量
varn=0;
functionf1(){
    varn=999;
    nAdd=function(){
    n+=1;
    returnn;
    };
    functionf2(){
      alert(n);
    }
    returnf2;
  }
f1();
nAdd();//返回值還是,而不是0
                            
查看完整回答
反對 回復(fù) 2019-04-19
  • 2 回答
  • 0 關(guān)注
  • 417 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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