立即函式 Immediate Function

在前面函式物件的章節有提到全域變數的使用要越少越好,

最簡單的方式就是用 function 物件建立出作用域把變數區隔。

立即函式的使用也能在各式主流框架或是組件中能夠看到,如下:

(function () {
    var namespace = 'app';
    // do something...
    console.log(namespace);
})();

或是

(function () {
    var namespace = 'app';
    // do something...
    console.log(namespace);
}());

這類語法方式可讓 function 在定義時立即執行,只執行一次且不再使用,也能避免掉全域汙染的情況。

當然它也可以擁有參數及回傳值,可將 global object 作為參數傳遞以便存取 global variable,

也可完成某項複雜的運送後回傳其值並接整個 function assign 給變數。

var app = (function () {
    var router = '/controller/action';
    return {
        router: router
    };
}());

results matching ""

    No results matching ""