立即函式 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
};
}());