반응형

객체 정의(리터럴) 방법

  • 리터럴 : 소스코드에 고정된 값을 말하는 대표적인 용어(var v1 = 5; var v2 = "a"; 에서 5, "a" 값이 리터럴임)
  • 아래 예제 에서 num에 할당된 1, func1, func2에 할당된 function() 이 리터럴 이라고 보면 됨

리터럴 객체 정의 예제

var obj = { 
  num: 1, 
  func1: function () { 
    //... 
  },
  func2: function () { 
    //... 
  } 
};

 

클로져 IIES 패턴 모듈

  • 즉시 실행 함수(IIES) 패턴을 이용한 모듈 정의 방법
  • 하나의 모듈만 미리 생성후 바로 사용 가능한 형태
var module = (function() {
    // 은닉될 멤버 정의
    var privateKey = 0;
    function privateMethod() {
        return privateKey++;
    }
 
    // 공개될 멤버(특권 메소드) 정의
    return {
        publicKey: privateKey,
        publicMethod: function() {
            return privateMethod();
        }
    }
})()

//바로 사용가능
console.log(module.publicMethod()); // 0
console.log(module.publicMethod()); // 1

 

클로져 생성자 패턴 모듈

  • 사용시에 모듈을 생성한 뒤에 사용
  • 복수의 모듈이 필요할 때 사용
var module = function() {
    var privateKey = 0;
    function privateMethod() {
        return privateKey++;
    }
 
    return {
        publicKey: privateKey,
        publicMethod: function() {
            return privateMethod();
        }
    }
}

//모듈 할당 후 사용
var obj1 = module();
console.log(obj1.publicMethod()); // 0
console.log(obj1.publicMethod()); // 1
 
//모듈 할당 후 사용
var obj2 = module();
console.log(obj2.publicMethod()); // 0
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기