Script
Closure 본문
Closure의 정의
- 외부 함수에 접근할 수 있는 내부 함수 혹은 이러한 원리를 일컫는 용어
- 스코프에 따라서 내부 함수의 범위에서는 외부 함수의 범위에 있는 변수에
접근이 가능하지만 그 반대는 불가능하다는 개념 - 특징으로 외부 함수는 외부 함수의 지역변수를 사용하는 내부 함수가
소멸할 때까지 소멸되지 않는다
예시
function makeFunc() {
var name = "이름";
function displayName() {
console.log(name);
}
return displayName;
}
//myFunc변수에 displayName을 리턴함
var myFunc = makeFunc();
//리턴된 displayName 함수를 실행(name 변수에 접근)
myFunc(); // "이름" 콘솔 출력
- 일반적으로 함수 안의 지역 변수들은 그 함수가 처리되는 동안에만 존재하기 때문에 displayName 함수가
리턴되면 name 변수에 접근할 수 없다고 예상된다.
- 하지만 js에서는 함수를 리턴할 때 클로저를 형성하기 때문에 클로저가 형성될 당시의 함수와 함수가 선언된 어휘적
환경의 조합 (쉽게 말해 당시의 관계되는 코드들)의 참조를 유지한다. (즉, 기억한다.)
'Javascript' 카테고리의 다른 글
| Event Loop (0) | 2022.12.21 |
|---|---|
| 이터러블, 제너레이터 (0) | 2022.12.20 |
| 호이스팅과 스코프, TDZ (0) | 2022.07.18 |
| async & await (0) | 2022.06.18 |
| Promise (0) | 2022.06.18 |
Comments