• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

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

19.11.22 21:42 작성 조회수 105

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

이충만님의 프로필

이충만

질문자

2019.11.23

답변 감사합니다 😀