JSパターン - 名前空間パターン

不正なコード

// BEFORE:5つのグローバル
// 警告:アンチパターン

//のコンストラクタ
関数親(){}
 関数子供(){} 

// 変数
VARの some_var = 1 

// いくつかのオブジェクトの
VARのモジュール1 = {}; 
module1.data = {1、B:2 }。

VaRのモジュール2 = {};

 

良いコード

// AFTER:1グローバル
// グローバルオブジェクト
VARの MYAPP = {}; 

// コンストラクタ 
MYAPP.Parent = 関数(){}。
MYAPP.Child = 関数(){}。

// 変数 
MYAPP.some_var = 1 

// オブジェクトコンテナが 
MYAPP.modules = {}; 

// ネストされたオブジェクト 
MYAPP.modules.module1 = {}; 
MYAPP.modules.module1.data = {1、B:2 }。
MYAPP.modules.module2 = {};

 

あなたが名前空間に追加しているプロパティの一部は、すでに存在していてもよい、とあなたはそれらを上書きすることができます。
したがって、プロパティを追加または名前空間を作成する前に、それがまだ存在していないことを最初にチェックするのが最善です

// 危険
するvar MYAPP = {}; 

// より良い
場合typeof演算 MYAPP === "未定義" ){
     VARの MYAPP = {}; 
} 

// または短く
するvar MYAPP = MYAPP || {};

 

 

ます。https://www.cnblogs.com/davidgu/p/3333129.htmlで再現

おすすめ

転載: blog.csdn.net/weixin_33720956/article/details/93802898