티스토리 뷰

자바스크립트에는 private, public, protected 와 같은 별도의 문법이 없다. 기본적으로는 객체의 모든 멤버는 public(공개)되어 있다.


공개가 되었다는 뜻은 외부에서 해당변수의 접근이 가능하다는 것이다.

간단한 예제를 보자

<소스>


<결과>





비공개 멤버(private)

별도의 문법은 존재하지 않지만 클로저를 이용하여 구현할 수 있다. 생성자 함수안에서 클로저를 만들면 유효범위안의 변수는 생성자 함수 외부에 노출 되지 않지만 객체의 공개 함수에서는 사용이 가능하다.


<소스>


<결과>

위와 같이 간단히 비공개 멤버를 구현할 수 있다.



비공개 멤버의 주의점

비공개 변수값을 배열이나 객체를 반환하게 되면 비공개 변수 값을 수정할 수 있다.

<소스>

<결과>


따라서 비공개멤버를 반환할 때는 객체나 배열이 아닌 변수를 반환하는 것이 좋으며
객체나 배열을 반환할 경우에는 하나의 값만 따로 지정하여 반환해야 한다. 이것이 최소 권한의 원칙 이라고 부른다