반응형
Closure
단어는 기본적으로 “폐쇄”라는 의미를 갖고 있다.
자바스크립트의 클로저란, 함수가 선언될 당시 주변 환경(Lexical Environmnet)와 함께 갇히는 것을 의미한다.
“함수가 선언될 당시” 가 의미하듯 클로저는 함수가 선언되는 주변 환경과 관련하여 생성되는 개념이다. 실행되는 장소나 시점은 관계가 없다!
- this는 어떻게 실행되느냐가 중요하다!! 서로 반대!!
Function foo() {
const a = 1;
const b = 1;
function moo() {
console.log(a+b);
}
return log;
}
const func = foo();
func();
자바스크립트는 함수가 실행될때마다, 현재 실행되는 함수에 관련 정보를 컴퓨터 메모리에 저장한다. 이것을 실행컨텍스트라고 일컫는다.
Callstack은 여러 함수들을 호출하는 상황에서 해당 위치를 추적하는 자바스크립트 엔진을 위한 메커니즘이다.
함수가 호출될 경우 해당함수가 Call stack에 쌓인다.
그 함수에 의해 호출된 다른 함수가 있다면 함수 위에 호출된 함수가 위에 쌓인다.
현재 함수의 실행이 종료된다면 Callstack에서 제거되고, 그 아래 쌓여있던 함수가 실행되고 똑같이 실행 후 Call stack에서 제거된다.
만약 Call stack이 많다면 오브플로워가 일어날 수 있다
this, prototype, closure, 비동기 자바스크립트를 하려면 이 4가지가 핵심이다. 그 핵심안에 각각 요소가 따로 있지만 일단 4가지를 잘 알아야한다. 헷갈리지 않게 복습하고, 계속해서 공부하자
반응형
'바닐라코딩' 카테고리의 다른 글
8주차 강의 Web Basic & Asynchronous Java Script (0) | 2021.09.04 |
---|---|
6주차 과제 - prototype과 Component (0) | 2021.08.29 |
4주차 강의 this (0) | 2021.08.11 |
3주차 과제 카드퀴즈만들기 (0) | 2021.08.11 |
3주차 강의 ES2015 & beyond (0) | 2021.08.07 |