私は JavaScript の初心者で、名前空間の次のスキームを考え出しました。
(function() {
var ns = Company.namespace("Company.Site.Module");
ns.MyClass = function() { .... };
ns.MyClass.prototype.coolFunction = function() { ... };
})();
Company.namespace は、Module までのオブジェクトのチェーンを単純に作成するスクリプトによって登録される関数です。
外部、非グローバル スコープ:
var my = new Company.Site.Module.MyClass();
私は特に、変数ns
をグローバルスコープから隠す方法について質問しています-すぐに実行されるラッピング匿名関数によって。どこにでも書き込むことができますCompany.Site.Module
が、ローカル変数に ns を格納するのに比べて、DRY ではなく、少し面倒です。
何て言う?このアプローチにはどのような落とし穴がありますか? より標準と見なされる他の方法はありますか?