スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

JavaScriptの名前空間

最近の記事は『The Lunatic』というよりもJavaScriptで何か作ったという記事が多いのでカテゴリを増やしました。
で、このカテゴリの最初の記事です。

ここのところ、いくつかライブラリを作っていて、複数のJavaScriptのライブラリを読み込んだらfunction名が重複しそうで嫌だな、と思っていました。で、改めて調べてみたらやはり気になる人は多いらしく、いくつかテクニックがあるわけです。

そのうちの一つで、わかりやすいのがこれ。

要するに、ユニークな名前のオブジェクトを1つ作って、変数とかfunctionを全部入れてしまうと。ただ、変数とかfunction全部に名前空間をつけてやらないとダメなのが面倒臭い。

ちょっと工夫してみたのがこれ。

意味的には最初のと同じだけど、変数とかfunctionの宣言にいちいち名前空間をつけなくて良い。ただ、全部コンマ区切りになるし書き方が気持ち悪い。というわけで、最初の方を採用しました。
※ クラス風にするテクニックもありますが、機能的に少し変わってくるので別物ということで。

HexSheetとReplayFormatterを修正したのですが、それほど大変ではなかったのは助かりました。特に、HexSheetの方は関数ローカルじゃない変数を使っているのですが、最初に書いた時から変数がグルーバル空間にたくさん追加されるのが嫌で1つのオブジェクトにまとめていたのが良かった。実際、別のスクリプトでHexSheetの機能を使うとき、1つにまとめた変数の存在をチェックしてライブラリが読み込まれているか判断すれば良いと思っていたので、名前空間のテクニックほどではなかったけど結構良い線を行っていたみたいです。
スポンサーサイト

コメント

非公開コメント

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。