2008年03月27日

JavaScriptで名前空間

JavaScriptには名前空間がないので、オブジェクトを代わりに使います。

Namespace.hoge = "ほげほげ";
Namespace.fuga = function() {};

こんな感じでオブジェクトのプロパティを追加していくことで、グローバルスコープを汚さずに済みます。
それだけではなく、JavaScriptだとグローバルスコープに宣言するよりも速いらしいです。

ただし、名前空間がcom.example.foo.barといったように長ったらしくなると、宣言が面倒になってくるのでクロージャを使って凌ぎます。



以上がオライリーのパクリ。

で、ここからが本題。

自分で書いたコードはこうやって気をつければ良いんですが、人様のライブラリだとそうはいきません。改変して使うのは気が引けるしライセンス違反だったりもします。
しかし、上記のサンプルの、
//匿名関数内に変数や関数を定義していく。
の部分だけAjaxで読み込んでクロージャ内に展開してしまえばなんとかなるかもしれない、と思って関数を作ってみました。



使い方:
■読み込むファイル(hoge.js)


■使う側のコード


動作確認

代入用コードとやらがダサダサなのが致命的だなぁ。
そして、自分がライブラリ以外のコードにも名前空間使うように徹底すれば衝突しないじゃん!!
と今気付いたのは絶対秘密。泣いちゃうから。
いや、でも、ほら、読み込む外部ライブラリが複数あったりした場合とかさ……。
posted by 膳 at 01:08| Comment(0) | TrackBack(0) | JavaScript
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/13176556

この記事へのトラックバック