2012-01-05 18 views
-4

ここで言っている:jqueryがグローバル名前空間を汚染しないのはなぜですか?

http://briancrescimanno.com/2009/09/24/how-self-executing-anonymous-functions-work/

はjQueryのソースコードを見て、あなたが ライブラリ全体を あるシングル、自己実行中の関数に包まれていることがわかりますjQueryグローバルオブジェクトに割り当てられます。

しかし、jQueryはGLOBALオブジェクトなので、グローバルな名前空間を汚染するか、何か不足していますか?

+5

"pollute"を定義します。 *単一オブジェクト*は名前空間を「汚染」していますか? –

答えて

4

グローバルスコープ内に1つだけの変数を持つことは、グローバルスコープの汚染とはみなされません。それはネームスペースのようなものですが、他のライブラリがネームスペース 'jQuery'(そしておそらく$)を呼び出すことはほとんどありません。そのような状況でも、jQueryはnoConflict関数を実装することによって正常に処理します。

+0

他のライブラリが '$'を使う可能性は非常に高いです。これはJavaScriptライブラリマグネットです:P – Anurag

5

あなたはそのブログ記事の次の文章を正しく読まなかった。

それは正確にjQueryのはほぼ同じくらい他のライブラリとしてグローバルな名前空間を汚染しないことを理由です:それは汚染がないことを主張しませんでした。

0

グローバルスコープ内にオブジェクトが存在しない場合、オブジェクトはどこにありますか? Javascriptの中にはスコープがあるので、$がグローバル名前空間や別のjavascriptオブジェクトになければ、それはバインドされておらず、アクセス不能です。そのような状況は不可能です。すべてのオブジェクトはのどこかに行かなければなりません。

javascriptオブジェクトは存在しますが、スコープがない場合は使用できますか? 木が森に落ちたが、周囲に誰もいない場合、音が出ますか?

関連する問題