프로그래머스 JS 기초 - 9

김동현·2022년 12월 5일

javascript

목록 보기
26/33

변수의 scope

선언한 변수가 유효한 영역

function scope

  • 선언된 변수는 선언된 함수 안에서 접근 가능
  • 선언된 함수 안에서 선언된 함수에서도 접근 가능

변수의 shadowing

함수 안에서 밖에서도 선언되었던 같은 이름의 변수를 사용하는 경우

  • 함수 안에서 밖에서도 선언되었던 같은 이름의 변수를 사용하는 경우
    - 함수 밖의 변수는 잠시 가려짐

    • 함수 안에서는 해당 함수애서의 변수를 사용
    • 함수에서 빠져나오면 다시 해당 변수에 접근
  • 함수 안에서만 값이 유지되어야 하는 경우
    - 함수 안에서 var 키워드를 사용해 선언하고 사용

  • 여러 함수에서 값이 유지되면서 사용되는 변수의 경우

실습

Closure 클로저

함수, 함수가 선언될 때의 environment로 구성
함수가 정의 될 때의 environment가 함께 closure로 결합되면서, 다양한 활용이 가능

function makeCounterFunction(initVal){
    var count = initVal;
    function Increase(){
        count++;
        console.log(count);
    }
    return Increase;
}

var counter1 = makeCounterFunction(0);
var counter2 = makeCounterFunction(10);
counter1의 closure

함수 : function Increase(){}
환경 : var count = 0;
counter2의 closure

함수 : function Increase(){}
환경 : var count = 10;

profile
꺽이지 않는 마음

0개의 댓글