Hoisting 과 Closure

김효성·2022년 8월 30일
0
post-thumbnail

Hoisting

정의 `hoist` 라는 단어의 사전적 정의는 끌어올리기 라는 뜻이다. 자바스크립트에서 끌어올려지는 것은 변수이다. var keyword 로 선언된 모든 변수 선언은 호이스트 된다. 호이스트란 변수의 정의가 그 범위에 따라 선언과 할당으로 분리되는 것을 의미한다. 즉, 변수가 함수 내에서 정의되었을 경우, 선언이 함수의 최상위로, 함수 바깥에서 정의되었을 경우, 전역 컨텍스트의 최상위로 변경이 된다. => 쉽게말해 호이스팅이란 변수가 함수내에서 정의되면 선언이 함수의 최상위로, 함수 밖에서 정의되면 전역 컨텍스트의 최상위로 변경되는것!

Clousure

정의 Closure(클로저)는 두 개의 함수로 만들어진 환경 으로 이루어진 특별한 객체의 한 종류이다. 여기서 환경 이라 함은 클로저가 생성될 때 그 범위 에 있던 여러 지역 변수들이 포함된 context를 말한다.

클로저 생성 조건
1. 내부 함수가 익명함수로 되어 외부 함수의 반환값으로 사용된다.
2. 내부 함수는 외부 함수의 실행 환경에서 실핸된다.
3. 내부 함수에서 사용되는 변수 x는 외부 함수의 변수 스코프에 있따.

profile
인생은 단방향 디자인 패턴 🏃

0개의 댓글