2013-01-11 141 views
0

可能重複:
How does jQuery protect overwriting jQuery and $打破jQuery代碼

我找了jQuery的源代碼,並有幾行代碼,我不明白。

// Map over jQuery in case of overwrite 
_jQuery = window.jQuery, 

// Map over the $ in case of overwrite 
_$ = window.$, 

我的問題是上面的代碼是幹什麼的?它是如何工作的?我認爲它是負責jQuery和$對象,但我無法圍繞它的頭。

回答

0

即在jQuery函數到的上下文中使用:

1)從重寫的jQuery$功能的功能防止客戶端代碼。

2)別名jQuery$功能爲increase speed

0

許多使用javascript的庫使用$。它正在重置$,以便其他庫如 Prototype可以使用$而不會導致衝突錯誤。如果沒有完成,代碼無法工作,並可能導致錯誤。

1

如果你看一下noConflict功能的源代碼,你會看到這個

if (window.$ === jQuery) { 
    window.$ = _$; 
} 
if (deep && window.jQuery === jQuery) { 
    window.jQuery = _jQuery; 
} 

當jQuery的負載,它覆蓋全球$jQuerynoConflict將這些全局變量從備份返回到其以前的值。這些備份是使用您提到的代碼創建的。

+0

Doh。這是一個重複的問題。 – Dikei