jquery代碼:
分析:
第一個括號裏面是個匿名函數,第二個括號表示馬上執行第一個括號裏面的代碼。
這種形式在javascript中又叫自調用函數(self-invoking-function)。
所有的jquery代碼都放在該匿名函數裏,避免了命名衝突。
擴展:
1) 自調用函數與單件對象(Singleton object)設計模式對比
單件對象的代碼形式:
Divo 對象中 init 函數一直存在,顯然會佔用內存。
當然,你也可以在執行 Divo.init() 後,做 delete Divo.init。
但:
因爲在整個應用程序生命週期中, init 函數只需要執行一次,所以自調用函數是最簡潔的一種寫法。
2)命名空間
javascript裏面是沒有命名空間的,要保證你的javascript函數、對象與其他的不衝突,你的所有javascript函數、對象都在一個匿名函數裏面定義,確保了所定義的函數、對象的有效範圍,起到了命名空間的作用。
3)匿名函數模式:
http://www.hedgerwow.com/360/dhtml/js-anonymous-function-patterns.html
非匿名函數的類似寫法如下