저는 JS에서 초보자입니다. 그래서 맨손으로 보았습니다. 구현 방법을 이해하는 것이 매우 까다 롭습니다. 그리고 어떤 사람들은 대부분 피할 것을 제안합니다. 아래는 특정 싱글 톤입니다. 내가 이해하기 쉬운 것을 발견하는 변이, 그러나 여하튼 나는 이것이이 패턴의 가장 좋은 구현이 아니라고 느낀다, 너희들은이 패턴의 더 좋은 형태를 제안 할 수 있겠 니?다음 싱글 톤 패턴에 문제가 있습니까?
var Foo = (function() {
var instance;
var _priVar = 2;
var log = function() {
console.log("Hello");
};
function Singleton(x, y) {
if (instance) {
return instance;
}
this.name = x;
this.age = y + _priVar;
this.log = log;
instance = this;
}
Singleton.getInstance = function() {
return instance || new Singleton();
}
return Singleton;
}());
var a = new Foo("Bob", 24); var b = new Foo(); var c = Foo(); var d = Foo.getInstance();
를 다음 작업을 수행 할 때 우리는 여전히 얻을 것입니다
a == b // true
a == c // true
a == d // true
a.name // 'Bob'
b.age // 26
c.log // 'Hello'
d.name // 'Bob'
감사합니다,
원하는대로, 코드가 잘 작동합니다. – passion
'우리는 여전히 얻을 것입니다. '- 당신은 그것을 얻습니다 - 무엇이 문제입니까? –
무엇보다도 싱글 톤 패턴 자체에 문제가 있습니다. (http://stackoverflow.com/questions/137975/what-is-so-bad-about-singletons) 특정 구현은 이러한 문제를 상속합니다. – Bergi