inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바스크립트 중고급: 엔진 핵심

3. 클로저(Closure) 논리, 클로저 논리 전개, [정리 시간]

[정리 시간] 작성해보았습니다.

205

이하영

작성한 질문수 16

4

선생님 안녕하세요.

벌써 이번 강의의 마지막 정리시간이네요...항상 감사드립니다.

작성한 내용 다른분들과 공유하고자 글을 올립니당.

1. book function 오브젝트를 생성

2. book 함수가 속한 글로벌 오브젝트를 function 오브젝트의 [[Scope]]에 설정

3. var obj = book(200); 에서 book(200)을 호출

--실행 준비 단계--

4. 실행 콘텍스트를 생성 

5. 3개의 컴포넌트 생성 (렉시컬/변수 환경 컴포넌트, this 바인딩 컴포넌트)

6. book function 오브젝트의 [[Scope]]를 외부 렉시컬 환경 참조에 바인딩

--초기화 및 실행 단계--

7. 파라미터 이름인 bookParam에 200을 매핑하여 선언적 환경 레코드에 설정 

8.function getPoint(pointParam){코드}에서 function 오브젝트를 생성

9. getPoint function 오브젝트의 [[Scope]]에 book 함수의 내부 영역이 설정됨

10. getPoint를 선언적 환경 레코드에 설정

11. var point;에서 변수 이름을 선언적 환경 레코드에 설정

12. var point = 100;에서 선언적 환경 레코드의 point에 100 할당

13. return getPoint;에서 getPoint function 오브젝트 반환

14. obj에 getPoint function 오브젝트를 할당

15. console.log(obj(400))에서 obj를 호출하면 getPoint(400) 함수가 호출됨 

--getPoint 함수의 클로저와 관련된 부분--

1. 실행 콘텍스트를 생성 

2. getPoint function 오브젝트의 [[Scope]]를 외부 렉시컬 환경 참조에 바인딩 

3. pointParam이라는 파라미터 이름에 400을 매핑하여 선언적 환경 레코드에 설정

4. 함수 안의 코드 실행 

5. point = point + bookParam + pointParam;에서

6. point와 bookParam을 외부 렉시컬 환경 참조에서, pointParam을 선언적 환경 레코드에서 식별자 해결

7. 각각을 더한 값을 ponit에 할당 

8. 따라서 콘솔창에 700이 출력됨 

감사합니다!

javascript

답변 1

0

김영보

좋습니다.^^

getBook 실습 예제중 질문드립니다!

0

433

1

__proto__ 에 대해 질문드립니다

0

325

1

호이스팅 코딩시간 풀이

0

372

1

[코딩 시간] JS {name: value} 이해

0

347

1

[[Scope]] 와 [[Environment]]는 같은 개념인가요

0

349

0

slice

0

243

0

스코프가 뭔가요?

0

313

0

어려워요

0

260

0

강사님 변수이름에 get을 붙이는 이유를 알고싶습니다.

0

349

1

[정리 시간] 정확하게 이해했는지 확인 부탁드립니다.

0

308

0

스코프 질문

0

258

1

fn 함수와 book.get 함수 차이 질문드립니다...ㅠㅠㅠ

1

553

1

this binding 논리 질문입니다.

0

287

1

파라미터 값을 매핑할 때

0

256

0

ES6부터는 this 바인딩을 환경 레코드에서 참조한다고 들었습니다.

0

212

0

정리시간 입니다.

0

230

0

정리시간입니다.

6

277

0

정리 시간 입니다.

0

208

0

정리시간입니다.

6

234

0

코딩시간 입니다.

1

230

0

선생님 스코프 질문이 있습니다.

1

245

0

[정리시간] 해보았습니다!

0

183

0

선생님 질문있습니다!!

0

162

0

질문드려도 될까요 선생님..

0

221

0