5.4 모듈 패턴

자바스크립트는 패키지를 위한 별도의 문법이 없다. 하지만 모듈 패턴을 사용하면 개별적인 코드를 느슨하게 결합시킬 수 있다. 모듈 패턴은 지금까지 살펴본 다음 패턴들 여러 개를 조합한 것이다.

  • 네임스페이스 패턴
  • 즉시 실행 함수
  • 비공개 멤버와 특권 멤버
  • 의존 관계 선언

첫 단계는 네임스페이스를 정하는 것이다.

1
MyApp.namespace('MyApp.utilities.array');

그 다음 단계는 모듈을 정의하는 것이다. 공개 여부를 제한해야 한다면 즉시 실행함수를 사용해 비공개 유효범위를 만들면 된다. 즉시 실행함수는 모듈이 될 객체를 반환한다. 이 객체에는 모듈 사용자에게 제공할 공개 인터페이스가 담기게 될 것이다.

1
2
3
4
5
MyApp.utilities.array = (function(){
return {
// 여기에 객체 내용을 구현
};
}());

이제 공개 인터페이스에 메서드를 추가해보자.

1
2
3
4
5
6
7
8
9
10
MyApp.utilities.array = (function(){
return {
inArray: function(needle, haystack){
// ...
},
isArray: function(a){
// ...
}
};
}());