네임스페이스 패턴에서는 단 하나의 전역 객체를 생성했다. 샌드박스 패턴에서는 생성자를 유일한 전역으로 사용한다. 그리고 유일한 전역인 생성자에게 콜백함수를 전달해 모든 기능을 샌드박스 내부 환경으로 격리 시키는 방법을 사용한다.
그리고 다음과 같이 new키워드를 사용하지 않고 ‘ajax’와 ‘dom’이라는 가상의 모듈을 사용하는 객체를 생성 한다. 이처럼 사용할 모듈들을 앞쪽 인자(argument)로 전달해주고, 마지막 인자로는 콜백 함수를 전달해 준다.
이렇게 샌드박스 패턴을 사용하면 콜백 함수로 감싸진 샌드박스 객체 안에서 구현이 가능하다. 또한 위에서 언급했던 네임스페이스 패턴의 몇 가지 단점을 극복할 수 있다.
- 단 하나의 전역변수에 의존하는 네임스페이스 패턴의 단점을 여러 개의 샌드박스 객체를 생성함으로 극복할 수 있다.
- 점으로 연결된 긴 이름을 쓸 필요가 없다.
- 런타임(Runtime)에 탐색 작업을 거치지 않게 해준다.
Comments