2012-04-05 13 views
0

ご存知ですか? JQueryが関数名を$に割り当てる方法は?

+1

まあ、それはオープンソースです、多分あなたは行くと見ることができます。しかしクエンテングが言ったように、私はそれが何か特別なものであるとは思わない。 – corazza

答えて

8

これを保存すると思います非圧縮ライブラリの9384行で行われます(http://code.jquery.com/jquery-1.7.2.jsこの割り当ての右側にjQueryがライン22で始まる関数スコープの参照()である)

// Expose jQuery to the global object 
window.jQuery = window.$ = jQuery; 

:もちろん、あなたのお気に入りのショートカットを作成することができます(たとえば、 _)あなたが_代わりの$またはjQueryを使用できるようにあなたは、ライブラリをロードした後

window._ = window.jQuery 

ような何かをやって。

あなたには、いくつかの他のライブラリをロードしているとあなたが$参照との競合を持っているので、あなたがこれを尋ねた場合は、ちょうどそれがグローバルスコープの普通割り当てなければなりませんjQuery.noConflict()方法

5

他の変数名に関数を割り当てるのと同じ方法です。関数名には$という文字は特別なものはありません。

jQueryの使用はin their source code

window.$ = _$; 
+0

おそらく、彼は匿名関数を使うか、単に 'function $()'を使ってそうするのでしょうか? – corazza

0

見つけることができることを具体的な方法私は、彼らは単に、より正確には

window.$ = jQuery; 

を行い、彼らが最初に$

var jQuery = (function() { 

// Define a local copy of jQuery 
var jQuery = function(selector, context) { 
    // The jQuery object is actually just the init constructor 'enhanced' 
    return new jQuery.fn.init(selector, context, rootjQuery); 
}, 

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

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

を見てみましょう。

$ = Jquery; 

$がまだ定義されていないことを確認するための安全性チェックが必要です。これまで同様に

0

window.$ = function() { 
    alert('Hello world!'); 
} 

$(); 

JavaScriptの関数名には約$特別なものは何もありません。これはまた許容されます:

function $() { 
    alert('Hello world!'); 
} 
関連する問題