2016-12-05 5 views
-2

私はJavaScriptでシングルトンパターンを実装しました。それは、次のいれシングルトンパターンの実装

var Student = (function(){ 
    var obj = {}; 
    return { 
     getInstance : function(){ 
      return obj; 
     } 
    } 
})(); 

var student1 = Student.getInstance(); 

student1.name = "Mejam Kinavchisko"; 

var student2 = Student.getInstance(); 
student2.age = 23; 

console.log(student1.name); 
console.log(student2.name); 
console.log(student2.age); 
console.log(student1.age); 

出力は以下のとおりである、上記の例私は新しいプロパティ「名前」を追加する場合は、特定のインスタンスを参照することができて

Mejam Kinavchisko 
Mejam Kinavchisko 
23 
23 

と いくつかの値を割り当て、同じものが他のインスタンスに反映されました。

つまり、student1とstudent2が同じオブジェクトを指しています。

私がJavaScriptでシングルトンパターンを達成したかどうかは分かりません。

+0

同じ値が反映されている参照します。実際には、 'Stugent.getInstanceOf'は場所を返し、その場所のオブジェクトをオーバーライドします。 – Rajesh

+0

あなたはどんな答えを期待していますか?シンプルな「はい/いいえ」? –

答えて

0

シングルトンパターンは、クラスのインスタンス化を1つのオブジェクトに制限するため、既知です。古典的には、クラスの新しいインスタンスを作成するメソッドを持つクラスを作成することで、シングルトンパターンを実装することができます。インスタンスがすでに存在する場合は、そのオブジェクトへの参照を返します。

ここで作成された両方のオブジェクトの参照は同じであるため、動作はSingletonです。

トピックに関する詳細な考え方について、あなたはSTUDENT1とstudent2が同じオブジェクトを指している理由ですAddy Osmani's guide to Javascript Design Patterns.

関連する問題