인프런 커뮤니티 질문&답변

이충만님의 프로필 이미지
이충만

작성한 질문수

자바스크립트 중고급: 엔진 핵심

4. 클로저와 무명 함수, JS에서 클로저

정보 보호에 관해 질문이 있습니다.

작성

·

161

3

이 전 강의의 클로저 코드에서도 정보가 보호 되는것 아닌가요? 정보보호 관점에서 아래의 코드와 즉시실행 익명함수로 한번 더 감싼것이 어떠한 차이가 있는 것인지 궁금합니다.

function book() {
  var point = 100;
  var getPoint = function(param) {
    point = point + param;
    return point;
  };
  return getPoint;
}
var obj = book();
log(obj(200));



덧붙여 좋은 강의 정말 감사합니다. 😄

답변 2

3

김영보님의 프로필 이미지
김영보
지식공유자

즉시실행 익명함수는 함수 안에 작성한 변수(var)를, 함수를 빠져나오면 자동으로 GC 처리를 하게됩니다. 즉, 메모리에서 지워지므로 변수가 남지 않습니다. 그래서 일반적으로 초깃값을 설정하는 것과 같이 한 번만 처리할 때 사용합니다. 또한, 함수 안의 변숫값을 유지하려면 지워지지 않는 곳에 저장해야 하는데요, ES5에서는 특정 오브젝트에 저장하고 ES6+에서는 주로 Map 오브젝트에 저장합니다.
정보보호 차원에서는 클로저 형태가 좋습니다. 아울러 대상에 차이가 있지만 ES5의 디스크립터를 사용하여 정보 보호를 할 수도 있습니다. 좋은 질문 감사합니다.^^

1

이충만님의 프로필 이미지
이충만
질문자

답변 감사합니다 😀

이충만님의 프로필 이미지
이충만

작성한 질문수

질문하기