まず、コンセプト:
Aクラス
の唯一のインスタンス
それにアクセスするためのグローバルアクセスポイントを提供します
第二に、達成するために:
class SimpleOne {
constructor (name) {
this.name = name;
}
getName (propsName) {
this.name = propsName;
return typeof this.name;
}
}
const a = new SimpleOne('a').getName();
const b = new SimpleOne('b').getName();
a === b // true
三、JavaScriptのシングルトン
我々の開発では、多くの学生が一つのケースを使用する方法を、何であるか最終的に一つのケースを知っているが、彼らが書いたコードが、ちょうどSingletonパターンの要件を満たすようにしない場合があります。
ログインポップ、その場所でどのようなページやページどんなにを達成するために、ログインボタンをクリックして、ログインウィンドウがポップアップ表示されます。一部の学生は、はい、これは実際に着陸の所望の効果を達成するだけでなく、シングルトンの要件を満たしていますが、この実装は実際に偶然、または美しい間違いであることができ、着陸窓関数を達成するためにグローバルなターゲットを書き込みます。
グローバルオブジェクトとして、または正確にグローバル変数に合わせてグローバルにアクセス可能シングルトンこと、そしてユニークであることができます。我々はすべてのグローバル変数は、特にジュニア開発者のために、カバーすることができることを知っているにかかわらず、基本的にグローバルであるかを定義するために始めての、このようなメリットがアクセスしやすい。しかし、欠点は、監視の目ずに競合が発生することがありますとても成熟し、経験豊富な開発者は、全体的な声明を最小限に抑え、かつ、当社のグローバル変数の開発に恒例の汚染を避けるために、大規模なプロジェクトチームを行う場合は特に、次のとおりです。
- グローバル名前空間
- クロージャを使います