본문 바로가기

programming study/JavaScript

24장 클로저(3)

본 내용은 모던 자바스크립트 Deep Dive - 자바스크립트의 기본 개념과 동작 원리를 토대로 작성하였습니다.

24.5 캡슐화와 정보 은닉

  • 캡슐화 : 프로퍼티와 메서드를 하나로 묶는 것
  • 정보 은닉 : 캡슐화를 하여, 객체의 특정 프로퍼티, 메서드를 감출 목적으로 사용
  • 객체의 상태가 변경되는 것을 방지해 정보를 보호, 결합도를 낮춤
  • JavaScript의 모든 프로퍼티와 메서드는 기본적으로 외부에 공개됨(public)
    • 함수의 지역 변수는 외부에서 참조 및 접근 불가(private)

24.6 자주 발생하는 실수

  • var의 경우 함수 레벨 스코프 특성상 클로저 생성이 안되는 경우가 있음
    • let 키워드로 교체하면 해결
var funcs = [];
​
// i는 전역변수 취급되어 최종적으로 3이 할당
for (var i = 0; i < 3; i++){
 funcs[i] = function () { return i; };
}
​
for (var j = 0; j < funcs.length; j++) {
 console.log(funcs[j]()); // 3이 출력
}

'programming study > JavaScript' 카테고리의 다른 글

25장. 클래스(2)  (0) 2022.04.04
25장. 클래스(1)  (0) 2022.04.02
24장 클로저(2)  (0) 2022.04.01
24장 클로저(1)  (0) 2022.03.29
23장 실행 컨텍스트(5)  (0) 2022.03.27