반응형
싱글톤 패턴 모듈
- 하나의 인스턴스만 만들어 사용하는 패턴
var singleton = (function() {
var instance;
var a = 'hello';
function initiate() {
return {
a: a,
b: function() {
alert(a);
}
};
}
return {
getInstance: function() {
if (!instance) {
instance = initiate();
}
return instance;
}
}
})();
//사용
var first = singleton.getInstance();
var second = singleton.getInstance();
//first와 second는 동일한 인스턴스임
console.log(first === second); // true;
모듈+네임스페이스 패턴1
- 하나의 인스턴스를 이름을 지정하여 사용하는 형태
var common = common || {};
common.module = (function() {
var privateKey = 0;
function privateMethod() {
return privateKey++;
}
return {
publicKey: privateKey,
publicMethod: function() {
return privateMethod();
}
}
})();
console.log(common.module.publicMethod()); // 0
console.log(common.module.publicMethod()); // 1
모듈+네임스페이스 패턴2
var common = common || {};
common = (function() {
var publicFunc = {};
var val1 = 10;
publicFunc.setVal1 = function(v) {
val1 = v;
}
publicFunc.getVal1 = function() {
return val1;
}
publicFunc.sum = function(x, y) {
return x + y;
}
return publicFunc;
})();
//사용
common.setVal1(15);
console.log(common.getVal1()); // 15
console.log(common.sum(3, 9)); // 12
반응형
'웹 > javascript' 카테고리의 다른 글
Javascript 로딩바 동적 생성후 Show/Hide (0) | 2021.11.20 |
---|---|
Javascript 객체 정의 방법, 클로져 IIES 패턴 모듈, 클로져 생성자 패턴 모듈 (0) | 2021.11.18 |
Javascript Prototype(프로토타입) (0) | 2021.11.18 |
Javascript 즉시실행함수(IIFE), 클로져(Closure) (0) | 2021.11.18 |
Javascript Math, alert, confirm, prompt (0) | 2021.11.18 |
최근댓글