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

짱구님의 프로필 이미지
짱구

작성한 질문수

코딩인터뷰를 저격하는 JS 스나이퍼 양성학교

클로저 파트 마지막 예시에 관해 질문있습니다.

작성

·

178

1


 
예시를 RunJS에서 따라쳐봤는데요. person.age를 30으로 바꿨고, person.age를 출력했을 때는 30이 찍히는데, 왜 person.getAge( ); 로 찍었을 때는 15로 계속 나오는지 도저히 이해가 안되네요ㅠ
 
왜 이런 현상이 발생하는 건가요???

제가 이해력이 부족해서, 강의만으로 온전히 이해가 안되네요. 이 부분에 대해서 좀 더 자세한 설명 부탁드리겠습니다.
 
감사합니다.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

답변 1

1

Hojun Lee님의 프로필 이미지
Hojun Lee
지식공유자

안녕하세요 Eun-Gil Cho 님. 좋은 질문 감사드립니다 :) ㅎㅎㅎ

우선 person 을 콘솔로 찍어서 어떤 값을 가지고 있는지 확인해 보시길 권해드립니다. 

즉시실행함수가 return 하는 객체에는 age 라는 값이 존재하지 않습니다.

그렇기 때문에 person.age = 30은 기존에 없던 새로운 키에 값을 할당하는 것과 마찬가지가 되어버립니다.

person.age 와 즉시실행함수 안의 var age는 전혀 상관없다는 것을 유념하시기 바랍니다 :)

답변이 도움이 됐으면 좋겠습니다.

감사합니다!

짱구님의 프로필 이미지
짱구

작성한 질문수

질문하기