js 匿名自執行函式

admin發表於2017-03-28

在程式碼中經常看到有匿名自執行函式的使用,下面就通過程式碼例項簡單介紹一下它的一些用法。

所謂匿名函式自然就是沒有名稱的函式,程式碼如下程式碼:

[JavaScript] 純文字檢視 複製程式碼
(function(){ 
  //code
})();

上面是非常常見的一個程式碼結構,下面做一下簡單分析。

function(){//code}是一個匿名函式,但是你絕對不能寫成如下方式:

[JavaScript] 純文字檢視 複製程式碼
function(){ 
  //code
}();

上面的程式碼會報錯,具體原因可以參閱js中小括號()的用法詳解一章節。

在實際應用中,可以為匿名函式傳遞引數,程式碼如下:

[JavaScript] 純文字檢視 複製程式碼
(function(arg){ 
  console.log(arg+80); 
})(20);

匿名函式還有一個非常重要的作用就是程式碼進行封裝,匿名函式中的內容可以與外界隔絕,防止汙染。

程式碼如下:

[JavaScript] 純文字檢視 複製程式碼
(function(){ 
  function $(id){ 
    return document.getElementById(id); 
  } 
  function __addClass(id,className,classValue){ 
    $(id).style.className=classValue; 
  } 
  window['mySpace']={}; 
  window['mySpace']['addClass']=__addClass; 
})();

上面的程式碼可以保證$和__addClass不會造成全域性汙染,而是採用名稱空間的方式來呼叫這個函式。

相關文章