2010-07-20 66 views
6
(function ($) { 
     ... 
    }) (jQuery); 
+1

http://stackoverflow.com/questions/2024888/a-simple-question-on-jquery-closure – gnarf 2010-07-20 20:19:19

回答

6

爲了避免與其他使用$的JavaScript庫衝突。

但是,此方法允許您在該功能中隨意使用$,無需在此處使用jQuery

編寫jQuery插件時,該模式也很重要。

+0

非常感謝!所有的答案和評論啓發我! – kaneda 2010-07-21 15:35:26

+0

@laramaki:不客氣:) – Sarfraz 2010-07-21 15:49:01

2

內jQuery代碼的目的,它創建了一個功能,具有$作爲參數,並立即運行與jQuery作爲論據功能。實際上,這將確保在您的代碼中$指向jQuery,即使使用jQuery.noConflict()也是如此。

1

這樣,您就可以使用$的功能範圍內,但在外面,jQuery是不是重挫其他圖書館使用的$(如樣機也使用$,有的人喜歡這兩個混在一起)

0

除了其他答案中詳述的原因之外,訪問函數參數比全局變量更快(稍微!)。

只要jQuery.noConflict()尚未被調用,這可以寫爲function($){ … }($)具有相同的效果。

0

也被稱爲匿名回調函數,因爲它對任何對象都是未綁定的,所以 是嚴格「功能」的。設計jQuery插件的好設計模式 以避免其他人指出的衝突!