자바스크립트 - Vanilla JS
[자바스크립트 / Vanilla JS] 비공개 멤버
Lv1_junior_dev
2022. 7. 4. 12:45
비공개 멤버
위 코드의 함수에는 num1, num2, sum이라는 세 가지의 고유변수가 있다.
이들 변수는 함수 내부에서는 접근이 가능하지만 함수 외부에서는 접근이 불가능하다.
비공개 멤버에 대한 별도의 문법은 없지만 클로저를 사용해서 구현할 수 있다.
생성자 함수 안에서 클로저를 만들면, 클로저 유효범위 안의 변수는 생성자 함수 외부에 노출되지 않지만 객체의 공개 메서드 안에서는 쓸 수 있다. 클로저를 함수 안에 만들어 사용하면 스코프 체인을 통해 이들 변수에 접근이 가능하게 된다.
즉, 생성자에서 객체를 반환할 때 객체의 메서드를 정의하면, 이 메서드안에서는 비공개 변수에 접근할 수 있는 것이다.
보다시피 자바스크립에서도 쉽게 비공개 멤버를 구현할 수 있다.
비공개로 유지할 데이터를 함수로 감싸기만 하면 된다.
이 데이터들을 함수의 지역 변수로 만들면, 함수 외부에서는 접근할 수 없다.
출처: https://webclub.tistory.com/78 [Web Club:티스토리]