개발집사 2022. 7. 11. 12:23

함수와 함수가 선언된 어휘적환경의 조합.

함수를 리턴하는 함수

const makeCounter = () => {
    let value = 0;

    return {
        increase: () => {
            value = value + 1
        },
        decrease: () => {
            value = value - 1
        },
        getValue: () => value
    }
}

const counter1 = makeCounter();

counter1.increase(); //1
counter1.increase(); //2
counter1.decrease(); //1
counter1.decrease(); //0
counter1.increase(); //1
counter1.getValue(); //1