作者Arim (Arim5566)
看板Ajax
標題[ js ] (function($) {})(jQuery)
時間Tue Aug 26 22:23:41 2014
大家好
想要問一下
今天看到這種寫法
(function($) {/*一些初始化*/})(jQuery)
有查到這實際上會產生一個匿名函式
就相當於
function a($){...}
a(JQuery)
只是我不知道為什麼不要一開始就直接把{...}中的內容寫出來,而要先寫成function
在傳遞
請問這是用在什麼情況之下呢?
謝謝
--
~宅男的四個徵兆~
∠□ ○ ! * \○/ ★ (○ ?
╦╦└□ " ○□═ □ □>
║║√√ ╦══╦ ∥ |\
一回家就上PTT 每天想正妹 以當好人為樂 忘記正妹虧欠自己
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.39.101.252
※ 文章網址: http://webptt.com/m.aspx?n=bbs/Ajax/M.1409063024.A.DB5.html
1F:推 Y78: $這個符號有可能被其他的js library用掉 而不是代表jQuery 08/26 22:36
2F:→ Y78: 所以利用這樣子的方式立即執行函式並把jQuery傳入 確保$字號 08/26 22:36
3F:→ Y78: 不會被其他library蓋掉 08/26 22:37
4F:推 s25g5d4: 還有保護內部變數的功能 08/27 00:21
5F:推 alog: 1. 利用函數傳遞jQuery核心物件 $ 確保功能正確,以前年代混 09/02 07:25
6F:→ alog: 用他牌 js library 很常有的事,當時又很喜歡用$$$$ 做開頭 09/02 07:25
7F:→ alog: 2. 利用閉包技巧可隔離變數跟函式在多個模組運作的時候干擾 09/02 07:25
8F:→ alog: 會減少 3. 函數不容易被惡意網友用開發工具劫持複寫 09/02 07:25