2016-12-05 3 views
-2

자바 스크립트에서 싱글 톤 패턴을 구현했습니다. 그 다음 가지고있다싱글 톤 패턴 구현

,

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가 동일한 개체를 가리키고 있습니다.

따라서 내가 자바 스크립트에서 싱글 톤 패턴을 얻었습니까?

+0

동일한 값이 반사 참조. 그래서 실제로, Stugent.getInstanceOf'는 위치를 반환 할 것이고 그 위치에서 객체를 오버라이드합니다. – Rajesh

+0

어떤 종류의 대답을 기대합니까? 간단한 '예/아니오'? –

답변

0

따라서 싱글 톤 패턴은 클래스의 인스턴스화를 단일 객체로 제한하기 때문에 알려져 있습니다. 고전적으로 싱글 톤 패턴은 존재하지 않는 클래스의 새로운 인스턴스를 생성하는 메소드로 클래스를 생성함으로써 구현 될 수있다. 인스턴스가 이미 존재하는 경우에는 해당 객체에 대한 참조 만 반환합니다.

여기서 생성 된 두 개체의 참조는 동일하므로 Singleton 동작입니다.

주제에 대한 자세한 아이디어를 위해 당신은 student1 및 student2가 같은 객체를 가리키는 이유 Addy Osmani's guide to Javascript Design Patterns.