2011-06-30 1 views
6

誰でも私に説明してください。名前空間を使用するのが良いコーディング方法です。それはなぜ必要なのですか?それが良いアプローチだった場合、JQueryはデフォルトでそれを含んでいませんでした。この機能を可能にする別のプラグインがあります。JQuery名前空間は良い方法ですか?

私にはこれを行う方法はほとんど言及されていません。post気になる投稿のメモリリークについて誰かが言いました。

最後に、JQueryライブラリを整理する最良の方法は何ですか?

おかげで、

+1

あなたは名前空間を必要とせず、 '<<好きなモジュールローダーを挿入> 'モジュールを持っています – Raynos

+0

モジュールローダーとは何ですか? – Amir

+0

['requireJS'](http://requirejs.org/)は、モジュールをロードするための' require'キーワードと、モジュールを定義する 'define'キーワードを定義します。 _zero_グローバルスコープを使用します。他にもモジュールローダーがありますので、自分で見つけてください; – Raynos

答えて

20

注:あなたが他のスクリプトと競合する名前を持つことの少ないチャンスを持っているので、

  • 名前空間は良い習慣です。このように、あなたの名前空間だけが一意でなければならないが、複数の名前空間は同じ機能を持つことができる。
  • jQueryは名前空間を使用しているため、プラグインは必要ありません。 jQueryオブジェクト自体は名前空間です。 。 。 jQuery内部の関数は、jQueryオブジェクトの中で「名前空間」です。これは、どのJavaScriptオブジェクトでも当てはまります。アミールのコメントに応答して

YUIが追加変数もオブジェクトであるYUIオブジェクトに変数を追加することによって、名前空間を実現します。それらの名前空間関数は、あなたのためにそれを構築します。 jQueryので

var lib = { 
    util:{}, 
    widget:{}, 
    tool:{} 
}; 

//creates a function named reset in the lib.util namespace 
lib.util.reset = function() {}; 

//creates a function named reset in the lib.widget namespace 
lib.widget.reset = function() {}; 

、あなたはjQueryの()名前空間の$を使用する場合はjQuery.fn(または$.fnに追加

+0

あなたの素早い対応のためにLeviに感謝します。第2のポイントを私に説明できますか? jQueryにはYUI(yahoo)ライブラリとして名前空間がありません。どのように名前空間なしでjQueryライブラリを整理する/ – Amir

+0

@エイミール、私の答えを更新しました。 –

+0

$ .fnを使用できますが、jQueryドキュメントには次のような記述があります。 「プラグインごとに複数の名前空間を持つjQuery.fnオブジェクトを混乱させないでください」 jQueryでライブラリを整理しますか? – Amir

3

日時:jQueryのライブラリを整理するための最良の方法を、あなたはプラグインオーサリングを読むことから始めなければなりませんjquery.comの記事:

http://docs.jquery.com/Plugins/Authoring

0

require.jsそれが不必要にウィンドウオブジェクトにオブジェクトを追加する必要はありませんので、より良い練習でそれはまた。以前のjavascriptファイルの読み込み順序について心配する必要はありません。

関連する問題