비공개 멤버
위 코드의 함수에는 num1, num2, sum이라는 세 가지의 고유변수가 있다.
이들 변수는 함수 내부에서는 접근이 가능하지만 함수 외부에서는 접근이 불가능하다.
비공개 멤버에 대한 별도의 문법은 없지만 클로저를 사용해서 구현할 수 있다.
생성자 함수 안에서 클로저를 만들면, 클로저 유효범위 안의 변수는 생성자 함수 외부에 노출되지 않지만 객체의 공개 메서드 안에서는 쓸 수 있다. 클로저를 함수 안에 만들어 사용하면 스코프 체인을 통해 이들 변수에 접근이 가능하게 된다.
즉, 생성자에서 객체를 반환할 때 객체의 메서드를 정의하면, 이 메서드안에서는 비공개 변수에 접근할 수 있는 것이다.
보다시피 자바스크립에서도 쉽게 비공개 멤버를 구현할 수 있다.
비공개로 유지할 데이터를 함수로 감싸기만 하면 된다.
이 데이터들을 함수의 지역 변수로 만들면, 함수 외부에서는 접근할 수 없다.
출처: https://webclub.tistory.com/78 [Web Club:티스토리]
'자바스크립트 - Vanilla JS' 카테고리의 다른 글
[자바스크립트 / Vanilla JS] new 연산자와 생성자 함수 (0) | 2022.07.20 |
---|---|
[자바스크립트 / Vanilla JS] window.onload 여러 번 사용하기 (1) | 2022.07.13 |
[자바스크립트 / Vanilla JS] if(조건문) 줄이기 (1) | 2022.06.24 |
[자바스크립트 / Vanilla JS] ES6 템플릿 리터럴 (Template Literal) (0) | 2022.06.21 |
[자바스크립트 / Vanilla JS] 반복문에 대하여 (for.. for in.. for of.. forEach) (0) | 2022.06.20 |