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

看板Ajax作者 (Arim5566)時間11年前 (2014/08/26 22:23), 編輯推噓3(305)
留言8則, 3人參與, 最新討論串1/1
大家好 想要問一下 今天看到這種寫法 (function($) {/*一些初始化*/})(jQuery) 有查到這實際上會產生一個匿名函式 就相當於 function a($){...} a(JQuery) 只是我不知道為什麼不要一開始就直接把{...}中的內容寫出來,而要先寫成function 在傳遞 請問這是用在什麼情況之下呢? 謝謝 -- ~宅男的四個徵兆~ ∠□ ○ ! * \○/ ★    (○ ? ╦╦└□ " ○□═ □   □> ║║√√ ╦══╦ ∥    |\ 一回家就上PTT 每天想正妹 以當好人為樂 忘記正妹虧欠自己 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.39.101.252 ※ 文章網址: http://www.ptt.cc/bbs/Ajax/M.1409063024.A.DB5.html

08/26 22:36, , 1F
$這個符號有可能被其他的js library用掉 而不是代表jQuery
08/26 22:36, 1F

08/26 22:36, , 2F
所以利用這樣子的方式立即執行函式並把jQuery傳入 確保$字號
08/26 22:36, 2F

08/26 22:37, , 3F
不會被其他library蓋掉
08/26 22:37, 3F

08/27 00:21, , 4F
還有保護內部變數的功能
08/27 00:21, 4F

09/02 07:25, , 5F
1. 利用函數傳遞jQuery核心物件 $ 確保功能正確,以前年代混
09/02 07:25, 5F

09/02 07:25, , 6F
用他牌 js library 很常有的事,當時又很喜歡用$$$$ 做開頭
09/02 07:25, 6F

09/02 07:25, , 7F
2. 利用閉包技巧可隔離變數跟函式在多個模組運作的時候干擾
09/02 07:25, 7F

09/02 07:25, , 8F
會減少 3. 函數不容易被惡意網友用開發工具劫持複寫
09/02 07:25, 8F
文章代碼(AID): #1J_9Xmsr (Ajax)
文章代碼(AID): #1J_9Xmsr (Ajax)