• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

3:03 외부에게 지역변수 변경 권한을 준다의 의미가 궁금합니다.

20.09.22 15:32 작성 조회수 69

0

자동차 게임 예시를 통해, 지역변수를 선언이 외부로부터 그 값을 바꾸지 못하도록 한다는 것을 이해하였습니다. 그런데 3:03초쯤에 외부에게 지역변수 변경 권한을 부여한다는게 무슨 의미인지 잘 와닿지 않습니다. 자동차 게임에서 지역변수를 선언하면서 외부에서 값을 변경 못하도록 한건, 지역변수 변경 권한을 없앤것 아닌가용?.?

답변 2

·

답변을 작성해보세요.

1

예로 들은 Car에는 'run'이라는 메서드가 있습니다.
이 메서드는 km값을 받아서 지역변수 중 fuel, total 값을 변경하게 합니다.
물론 직접 변경은 아니고, 내부에서 적절한 판단을 거쳐 안전하게 처리하고 있습니다.

즉 외부에서는 제한적이긴 하지만 어쨌든 'run' 메서드를 통해서 지역변수의 접근 및 변경 권한을 '일부' 부여받은 셈이죠.

만약 Car 함수를 다음과 같이 작성하였다면 권한은 보다 직접적일 수도 있습니다.

var createCar = function (f, p) {
  // ...
  return {
    set fuel(f) {
      fuel = f;
    },
    // ...
  };
}

이제는 외부에서 `car.fuel = 10;` 등과 같은 명령을 통해서 직접 지역변수의 값을 변경할 수도 있습니다.

이렇듯 외부에 어떤 권한을 줄 것인지, 거기에 어떤 제한을 걸 것인지는
createCar 함수의 return할 객체 안에 어떤 내용을 담을 것인지에 따라 달라질 것입니다.

0

파이후님의 프로필

파이후

질문자

2020.09.22

와.. 빠르고 친절한 답변 감사합니다 이해도 확실히 됐습니다

선생님 덕분에 요즘 자바스크립트 재밌고 정확히 공부할 수 있습니다 감사합니다 :))