Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Q1. 출력되는 값을 적어주세요
A1 : 1, 2
Q2. 외부 함수 밖에서 내부 함수가 호출 되더라도 외부 함수의 지역 변수에 접근할 수 있는 이유를 설명해 주세요.
A2 :
첫번째로 함수는 호출되는 위치가 아닌 정의되는 위치에 의해서 렉시컬 환경이 생성 됩니다.
두번째로 내부 함수의 렉시컬 환경이 만들어 지면서 함수의 내부 슬롯인 [[Environment]]에는 외부 함수의 렉시컬 환경이 저장 되는데, 자바스크립트는 이 저장된 렉시컬 환경을 이용해 내부 함수의 외부 렉시컬 환경 참조에 외부 함수의 렉시컬 환경을 연결 시키고, 외부 함수와 내부 함수의 스코프 체인을 생성합니다.
세번째로 함수의 종료와 같이 실행 컨텍스트는 소멸 되지만, 실행 컨텍스트와 같이 생성된 스코프는 다른곳에서 참조하고 있을경우 소멸되지 않습니다.
위 세가지 이유로 내부 함수가 외부함수의 지역변수를 참조하고 있기에 외부 함수의 렉시컬 환경이 소멸 되지 않으며, 스코프 체인에 의해서 참조 가능합니다.
Q2. 빈칸을 채워주세요.
A3 :
객체의 상태를 나타내는 프로퍼티와 프로퍼티를 참조하고 조작할 수 있는 동작인 메서드를 하나로 묶는 것을 [캡슐화] 라고 한다.
이때, [캡슐화] 는 객체의 특정 프로퍼티나 메서드를 감출 목적으로 사용하기도 하는데 이를 [정보 은닉] 라고 한다.
Quiz3 : #1004