inflearn logo
강의

Khóa học

Chia sẻ kiến thức

JavaScript cốt lõi

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

245

pyhoo

30 câu hỏi đã được viết

0

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

javascript

Câu trả lời 2

1

jaenam

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

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

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

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

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

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

0

pyhoo

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

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

인스턴스에서 prototype 프로퍼티에 직접 접근해야하는 이유

0

58

1

setTimeout 에서 this

0

79

1

2강부터 영상이 나오지 않습니다.

0

172

1

자바스크립트 주석에 이상한 점이 있어서 문의드립니다.

0

217

2

return 문 안에 여러 함수가 존재하는 것이 이해되지 않습니다.

1

258

1

클래스 static 멤버

1

251

1

실행컨텍스트와 스택프레임

2

564

1

프로토타입으로 상속할때 브릿지 사용 이유

0

319

1

호이스팅 관련 질문

1

334

1

책 66p. 예제 3-2 질문입니다.

0

355

1

강의 내용 10:58 캡슐화 질문입니다.

1

396

1

강의 내용 5:10 질문입니다.

1

421

2

전역 공간에서의 this

0

425

2

18:31 addEventListener의 this

1

478

1

outerEnvironmentReference 질문

1

371

1

실행 컨텍스트와 클로저에 대해 질문드립니다.

1

447

1

Object.prototype.constructor의 [[prototype]] ?

1

657

1

함수를 값으로 할당할 때

2

456

1

15:54 'ddd' 사라지는 오류?

4

374

1

프로토타입 getPrototypeOf(instance).constructor(n,a) 질문입니다.

1

401

1

기본형/가변형 질문입니당

0

330

0

선생님 그러면 섹션 0만 봐도 무방한가요!?

0

332

1

Hoisting과 environmentRecord에 관한 질문입니다.

1

287

1

안녕하세요, 데이터 변경 질문입니다.

0

321

1