Blog

자바스크립트 샌드박스 패턴

자바스크립트 샌드박스 패턴

어떤 모듈이 다른 모듈과 그 모듈의 샌드박스에 영향을 미치지 않고 동작할 수 있는 환경을 제공한다. 라고 책에 나와있던데 모듈네임스페이스만 보호하면 SandBox내부에서 아무 작업이나 해도 되는듯 싶다.

싱글톤에 이은 신세계발견

정리

샌드박스는 말그대로 유일무이한 샌드박스 공간을 제공한다.

샌드박스 생성자 함수의 프로퍼티로 사용할 모듈들을 정의하여 샌드박스 호출시 선택적으로 모듈을 사용할 수 있다.(프로포타입에 추가할 경우 모든 모듈(메서드)을 공유하게 된다)

샌드박스 모듈은 샌드박스의 scope를 파라미터로 받아서 해당 scope에 접근이 가능하며 콜백함수 역시 파라미터로  this를 참조한다.

샌드박스의 프로토타입에 메소드를 선언하면 모든 인스턴스가 해당 내용을 공유하지만 모듈에서 scope만 참조하도록하면 생성자 함수의 인스턴스(this)를 참조하기 때문에 개별 scope를 가지게 된다.