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

全部開發(fā)者教程

JavaScript 入門教程

避免全局污染

自己的項目,其實不太能在全局污染上踩坑。

大部分因為全局污染造成的問題,都出現(xiàn)在老項目下,這些老項目被太多人維護,同時又缺少模塊化方案,如果開發(fā)人員的水平和意識都不是非常高,就會定義很多全局下的屬性和方法。

這時候如果自己去維護老項目沒注意,覆蓋了一個全局項目,就可能出現(xiàn)一個驚天大 Bug

所以在全局環(huán)境下,非必要情況,不要直接聲明變量和聲明函數(shù),他們會造成全局污染。

避免這個問題最常用的方法就是把自己的邏輯用一個函數(shù)包裹:

(function() {
  // 業(yè)務(wù)邏輯

  var a = 1;
  var b = 2;
  var c = 3;

  function fn() {
    console.log(a, b, c);
  }

  fn(); // 輸出:1 2 3
})();

fn(); // 拋出異常:fn is not defined

函數(shù)擁有自己的作用域,這樣就避免了全局污染的問題。

如果有時候需要通過全局做跳板,把一些內(nèi)容臨時的掛載全局下,可以起一些不太容易重名的名字:

window.__$some_global_var = 1;

通過 _$ 組合一些前后綴,可以大大降低覆蓋他們或者被覆蓋的可能性。

也可以增加一個命名空間,也就給全局下增加一個對象,所有自己要用的或者某個業(yè)務(wù)相關(guān)的全局?jǐn)?shù)據(jù)放在這個對象下:

window.__some_logic_need = {
  __$some_global_var: 1,
  __$some_global_fn: function() {},
};
索引目錄