클로저 (Closure)
1. 클로저 (Closure)
- 외부 변수를 기억하고, 이 외부 변수에 접근할 수 있는 함수
- 자바스크립트의 함수와 그 함수가 선언될 때의 환경으로 이루어짐
console.clear();
function countFunction(num) {
var count = num;
function Increase() {
count++;
console.log(count);
}
return Increase;
}
var counter1 = countFunction(0);
var counter2 = countFunction(5);
counter1();
counter2();
- 결과를 보면, counter1( ) 함수의 값은 1이고, counter2( ) 함수의 값은 6임
→ 그 이유는 countFunction(0)을 호출했을 때, Increase( ) 함수가 생성됨
→ 이 때, count 변수를 포함한 환경이 하나의 클로저로 만들어졌기 때문에 count++의 영향을 받아 1이 출력됨
→ countFunction(5)을 호출했을 때, 새로운 클로저를 만들어 6이 출력됨
- 즉, counter1에 저장된 함수와 counter2에 저장된 함수를 호출하면 둘 다 count는 변수를 쓰지만 값이 서로 다름
'Front-End Study > JavaScript' 카테고리의 다른 글
setTimeout 함수 (0) | 2023.07.27 |
---|---|
타이머 함수 (0) | 2023.05.15 |
메서드와 this (0) | 2022.12.22 |
객체(object) (0) | 2022.11.04 |
배열(array) (0) | 2022.11.03 |