클로저란?
- 외부 함수의 변수에 접근 할 수 있는 내부 함수
- JavaScript MDN: 클로저는 함수와 함수가 선언된 어휘적 환경의 조합, 클로저를 이해하려면 자바스크립트가 어떻게 변수의 유효범위를 지정하는지(Lexical scoping)를 먼저 이해해야 한다
- 어휘적 환경의 조합이라는 것이 낯설게 느껴진다. 하지만, 앞서 작성한 스코프에 대해서 이해를 하고 온다면 유효범위가 지역범위라는 것을 알 수 있다.
외부함수, 내부함수(클로저)
- 외부 함수 안에 있는 함수가 내부함수이며, 클로저라고 불린다.
- 외부함수는 내부함수의 변수를 사용하지 못한다.
- 내부함수는 외부함수의 변수를 사용할 수 있다.
- 내부함수는 여러개를 작성할 수 있다.
function init() {
let name = "minwoo"; // name은 init에 의해 생성된 지역 변수이다.
function displayName() { // displayName() 은 내부 함수이며, 클로저다.
console.log(name); // 부모 함수에서 선언된 변수를 사용한다.
}
displayName();
}
init();
참고자료
'Coding > JavaScript' 카테고리의 다른 글
[JavaScript] Local Storage (0) | 2022.05.22 |
---|---|
[JavaScript] 스코프 (0) | 2022.05.12 |
[JavaScript] 객체 (0) | 2022.05.10 |
[JavaScript] 배열 (0) | 2022.05.10 |
[JavaScript] 반복문(for, while) (0) | 2022.04.28 |