JavaScriptの名前空間を作成する際に注意する必要がある危険性や警告はありますか?JavaScriptネームスペースの使用に関連する危険性はありますか?
私たちのプロジェクトはかなり広範で、私たちは多くのJavaScriptファイル(20以上、もっと期待しています)を実行しています。これは、名前空間を使用せずに任意のコードの保守性を持つことは不可能であるので、我々はそうのようにそれらを実装している:
をそして階層を作成するために、我々はそうのようにそれらをリンク:これは正常に動作します
var globalNamespace = {
functions1: namespace1,
functions2: namespace2,
...
}
、 JSが名前空間を持っているかのように動作させるのは本質的に「トリック」です。このメソッドは多く使われていますが、これに関するほとんどの文献は、それを行う方法に焦点を当てているようであり、可能性のある欠点があるかどうかはわかりません。より多くのJSコードを書くと、これはすぐにシステムの仕組みの不可欠な部分になっています。したがって、シームレスに動作することが重要です。
この「誘発された」名前空間システムがエラーを引き起こしたり、特別な注意が必要な状況がありましたか?すべてのブラウザで同じ動作が期待できますか?
一般的に、名前空間は衝突の問題を解決しません。階層を1レベル上に移動するだけです。他の人が無関係のプロジェクトでも 'namespace1'を使うことができなくなってしまいました。 –
これは非常に基本的なJavaScriptのセマンティクスに基づいています。それについては危険な、あるいは特に "賢い賢い"ものはありません。私の意見では、これは機能を収集して公開する方法としても非常に弱い方法です。 – Pointy
「私的な」変数を導入する予定があるのは唯一の本当の「つかまえ」です。 – Tejs