jQuery中的$符號的由來
$是著名的jQuery符號。實際上,jQuery把所有功能全部封裝在一個全局變量jQuery中,而$也是一個合法的變量名,它是變量jQuery的別名:
window.jQuery; // jQuery(selector, context)
window.$; // jQuery(selector, context)
$ === jQuery; // true
typeof($); // 'function'
$本質(zhì)上就是一個函數(shù),但是函數(shù)也是對象,于是$除了可以直接調(diào)用外,也可以有很多其他屬性。
注:你看到的$函數(shù)名可能不是jQuery(selector, context),因為很多JavaScript壓縮工具可以對函數(shù)名和參數(shù)改名,所以壓縮過的jQuery源碼$函數(shù)可能變成a(b, c)。
絕大多數(shù)時候,我們都直接用$(因為寫起來更簡單嘛)。但是,如果$這個變量不幸地被占用了,而且還不能改,那我們就只能讓jQuery把$變量交出來,然后就只能使用jQuery這個變量:
$; // jQuery(selector, context)
jQuery.noConflict();
$; // undefined
jQuery; // jQuery(selector, context)
這種黑魔法的原理是jQuery在占用$之前,先在內(nèi)部保存了原來的$,調(diào)用jQuery.noConflict()時會把原來保存的變量還原