제 10장. 모듈과 네임스페이스
모듈과 네임스페이스 의 예제 |
Script Sample 소스 |
Sample 실행 화면 |
< 설명 > 네임스페이스를 지정하는 이유는 중복을 피하기 위해서이다. C#, Java 처럼 namespace, package 를 이용해서 구분하진 않지만, 흉내를 낼 수 있다. 위의 예제는 com.mainweb 네임스페이스를 지정하여, 하위에 Module 인스턴스를 생성한 경우이다. Module 이라는 인스턴스를 만들 경우 네임스페이스를 다르게 할 경우 에러가 발생되지 않는다. 클로저를 사용하여 private 프로퍼티로 설정할 수 있다. module 은 네임스페이스를 간결하게 표현하는 방법을 제시한다. 객체는 참조방식이므로 module 과 com.mainweb.Module은 같음을 알 수 있다. 그리고 module 인스턴스는 increase, decrease, setCounter, getCounter 라는 public 메서드와 counter 라는 private 프로퍼티를 가지고 있다. counter 는 내부적으로 조회, 수정이 가능하지만, 외부적으로는 private 속성과 같이 직접 접근이 불가하다. counter 의 값을 변경 및 조회를 하기 위해 여러 메서드가 지정되어 있다. 실행화면을 보면 increase, decrease 및 setCounter 로 counter 값을 변경시킬 수 있음을 알 수 있으며, 직접 접근이 불가하다는 사실을 증명해준다. module 인스턴스 내부를 살펴봐도, counter 프로퍼티는 없음을 알 수 있다. |