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

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

如果無法訪問任何變量,那么為什么我可以通過函數(shù)訪問它?

如果無法訪問任何變量,那么為什么我可以通過函數(shù)訪問它?

偶然的你 2022-05-26 11:15:42
我已經(jīng)閱讀了很多關(guān)于這個主題的內(nèi)容,但我仍然不清楚......如果 IIFE 完全是關(guān)于隱私(//+不污染全局名稱空間...//),那么為什么我可以使用函數(shù)參數(shù)訪問 IIFE 變量?結(jié)果將顯示 1200。所以不,我知道“a”是 200,所以我訪問了它。這背后的邏輯是什么?如果每個人都說我不能,為什么我可以訪問該變量?(sum=function(b){  var a= 200;  return a+b;})();console.log(sum(1000)); //1200 console.log(a); //error as expected第2部分:如果一個IIEF一旦被調(diào)用就消失了,那為什么我可以執(zhí)行多次?(sum=function(){  console.log("random text");})();sum(); /*this can relaunch the function even "iief is only used once" + I can do that multiple timessum(); //'random text' 'random text' ...第 3 部分:為什么當我為 IIEF 命名時可以重新啟動代碼段?我到處讀到,IIFE 只使用一次……一旦它們啟動,它們就消失了……(function sum(){  console.log("random text");})();sum(); //I can execute the IIEF as many times as I wish however I shouldn't be able to
查看完整描述

2 回答

?
繁星點點滴滴

TA貢獻1803條經(jīng)驗 獲得超3個贊

你那里沒有IIFE。

(和之間的代碼)將函數(shù)分配給隱式全局變量sum。

然后()after 它然后執(zhí)行評估表達式的結(jié)果(這是同一個函數(shù))。


查看完整回答
反對 回復(fù) 2022-05-26
?
德瑪西亞99

TA貢獻1770條經(jīng)驗 獲得超3個贊

您的示例代碼沒有明確聲明sum為變量,因此它是隱式的 global?;旧希绻谀_本中處于全局級別,則您的代碼將被解釋為:


var sum = function(b) {

  var a = 200;

  return a+b;

};

sum();

console.log(sum(1000));

一般來說,IIFE 的目的是創(chuàng)建一個命名空間,最終可以小心地將其導(dǎo)出到有限數(shù)量(希望為 1)的全局符號。在函數(shù)的私有命名空間內(nèi),可以聲明各種數(shù)據(jù)結(jié)構(gòu)和函數(shù)并隨著時間的推移對其進行操作,所有這些都與其他代碼完全隔離。


我認為您的代碼中的關(guān)鍵錯誤是假設(shè)有必要將匿名函數(shù)保存在某處。根據(jù)我的經(jīng)驗,這不是一件常見的事情。通常它看起來像:


(function(args) {

  // code, possibly a whole lot

})(parameters);


查看完整回答
反對 回復(fù) 2022-05-26
  • 2 回答
  • 0 關(guān)注
  • 118 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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