1. 程式人生 > >js自執行函式

js自執行函式

(function($, doc) {

}

(mui, document)

);

包圍函式-->function(){}<--的第一對括號向指令碼返回未命名的函式,隨後一對空括號立即執行返回的未命名函式,括號內為匿名函式的引數
來個帶引數的例子:
        (function(arg){
           alert(arg+100);
        })(20);
        這個例子返回120。
重要用途:可以用它建立名稱空間,只要把自己所有的程式碼都寫在這個特殊的函式包裝內,那麼外部就不能訪問,除非你允許。
       (function(){
           function $(id){
                return document.getElementById(id);
           }
           function __addClass(id,className,classValue){
                $(id).style.className=classValue;
           }
           window['mySpace']={};
           window['mySpace']['addClass']=__addClass;
        })();

上面的例子就可以用這種偽名稱空間封裝並保護自己的所有函式、物件和變數。而且,由於它們位於同一個函式中,所以可以互相引用。為了對受保護的程式碼進行全域性化,隨後的一對括號告訴瀏覽器立即執行返回的匿名函式,而且在執行期間將__addClass()賦值給了window的一個方法,這樣在外部只能執行addClass而__addClass被保護起來.

轉自:http://20032334.iteye.com/blog/288989