📋CS/기초질문

질문1 클로저(Closure)란 무엇이며, 어떻게 사용하나요?

하얀성 2024. 3. 28. 16:50

클로저(Closure)는 함수와 그 함수가 선언될 당시의 가동 범위를 의미합니다.

 

클로저는 내부 함수가 외부 함수의 스코프에 있는 변수에 접근할 수 있게 하며, 이러한 메커니즘을 통해 내부 함수는 외부 함수가 종료된 후에도 외부 함수의 변수를 "기억"할 수 있습니다.

 

function createCounter() {
    let count = 0;
    return {
        increment: function() {
            count++;
            console.log(count);
        },
        decrement: function() {
            count--;
            console.log(count);
        }
    };
  }
 
  const counter1 = createCounter();
  counter1.increment(); // 1
  counter1.increment(); // 2
  counter1.increment(); // 2
  console.log("-------------------")
 
  const counter2 = createCounter();
  counter2.increment()