클로저 (Closure)

클로저 (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