1. 程式人生 > >javascript高階程式設計之--自執行函式

javascript高階程式設計之--自執行函式

什麼是自執行函式?

顧名思義.就是不用呼叫,自己自動就會執行的函式;

為什麼要用自執行函式?

自執行函式內部是一個獨立的作用域,這樣就保持了一個相對獨立的名稱空間,避免汙染全域性作用域

怎麼建立自執行函式?

寫法一:(function(param){…})(re—param);
寫法二:(function(param){…}(re-param));
非主流寫法:在函式體前使用“+”,“-”,“!”;如!function(param){...}(re-param)同”()“一樣,這些符號的作用是將匿名函式或者函式宣告轉化為函式表示式;

舉個栗子:

//寫法一
            (function(params) {
                console.log(params)
            })("呵呵");//呵呵
            //使用+;
            +function (params) {
                console.log(params)
            }("呵呵");//呵呵
            // 使用-;
            -function (params) {
                console.log(params)
            }("呵呵");//呵呵
            // 使用!
            !function (params) {
                console.log(params)
            }("呵呵");//呵呵
            //寫法二
            (function (param){
                console.log(param)
            }("嘿嘿"));//嘿嘿
書寫自執行函式的注意事項:
1.函式體後面必須要有(),表示立即執行嘛!
 2.函式體必須是函式表示式而不是函式宣告;

函式體是函式宣告的形式:

舉個栗子

(function Alert(param,param1){
                console.log(param+param1)
            })("Alibaba","Tecent");//不是說自執行函式,函式體不能使用函式宣告嘛?為什麼這裡可以使用呢?,
                                    //因為這裡使用了()包裹著了函式體,將原函式宣告轉化為了函式表示式,同理其他符號也是一樣
            +function Alert(param, param1) {
                console.log(param + param1)
            }("Alibaba", "Tecent")