[ js ] (function($) {})(jQuery)

作者: Arim (象山下智久)   2014-08-26 22:23:41
大家好
想要問一下
今天看到這種寫法
(function($) {/*一些初始化*/})(jQuery)
有查到這實際上會產生一個匿名函式
就相當於
function a($){...}
a(JQuery)
只是我不知道為什麼不要一開始就直接把{...}中的內容寫出來,而要先寫成function
在傳遞
請問這是用在什麼情況之下呢?
謝謝
作者: Y78 (Y78)   2014-08-26 22:36:00
$這個符號有可能被其他的js library用掉 而不是代表jQuery所以利用這樣子的方式立即執行函式並把jQuery傳入 確保$字號不會被其他library蓋掉
作者: s25g5d4 (function(){})()   2014-08-27 00:21:00
還有保護內部變數的功能
作者: alog (A肉哥)   2014-09-02 07:25:00
1. 利用函數傳遞jQuery核心物件 $ 確保功能正確,以前年代混用他牌 js library 很常有的事,當時又很喜歡用$$$$ 做開頭2. 利用閉包技巧可隔離變數跟函式在多個模組運作的時候干擾會減少 3. 函數不容易被惡意網友用開發工具劫持複寫

Links booklink

Contact Us: admin [ a t ] ucptt.com