これはおそらく明らかだと思います...しかし、変数名の前に「$」を付けると、jQueryは正確に何をしますか。これが変数をグローバル名前空間に配置していることは知っていますが、なぜですか?
6 に答える
それは完全に誤りです。
$
たまたま短い名前を持つ通常のオブジェクト (実際には関数) です。
$
それ自体がグローバル (window
オブジェクトのプロパティ)
JavaScript$
では、変数名に使用できる有効な文字です。$
変数にa を追加しても、特別なことは何もありません。
var $a;
var a$b;
var $;
これらは単なる変数であり、特別な意味はありません。
jQueryはシンタティック シュガーwindow.$
を参照するだけwindow.jQuery
です :-)
$
(例: )で始まる変数var $myvar;
は単なる別の変数であり、まったく違いはありません。
編集:
「プレフィックス」とは、次のことを意味します。
$(myvar)
それは「接頭辞」ではありません。「ラッピング」だと思います。変数を「強化」します。それ自体を「ラップ」することもできwindow
ます... http://www.bennadel.com/blog/1838-Wrapping-The-Window-Object-In-A-jQuery-Wrapper.htm
することは と同じですjQuery(myvar)
。jQuery
関数です(必要に応じて呼び出し可能なオブジェクトです)。
名前の前に が付く変数を宣言しています$
か?
これを書くと:
$test = 500;
次に、はい、グローバル名前空間を という名前の変数で汚染していますが$test
、これは他の変数と何ら変わりはありません ( に$
は特別な効果はありません)。しかし、JQuery では、おそらく次のようにします。
$('test')
これは単純な関数呼び出しです。関数名は$
、パラメータは'test'
あなたがやっているときのことですか:
var $li = $("li");
をプレフィックスとして付けli
ていること$
。プレフィックスを自由に使用したい場合は、変数を何と呼んでいるかは問題ではあり$
ません。$variableName が jQuery オブジェクトであることを知ってコードをデバッグするときに役立つ場合。
jQuery は、javascript 言語の動作を変更することはできません。
グローバル変数を作成するには 2 つの方法があります
globalVariable = ...
また
window.globalVariable = ...
最初はjavascriptの厳密モードで動作しません
jquery.js が実行されると、ウィンドウ オブジェクト $ と jQuery にグローバル関数が追加されます
変数がローカルであるかグローバルであるかを変更することはできません。