변수를 숨기는 방법들

var를 이용하는 방법

아래의 예제에서 var를 이용하여 b를 외부로부터 숨겼습니다. var를 사용하지 않고 선언할 경우 전역으로 선언되기 때문입니다.

function f1(a) {
  function f2(a) {
    return a - 1;
  }
 
  var b;
  b = a + f2(a);
  console.log(b);
}
 
f1(2);  // 3

같은 이름을 선언하는 방법

아래의 예제는 같은 이름을 선언하여 외부의 x에 접근하지 못하도록 하였습니다.스코프 체인 성질 을 이용하여 정의되고 있는 함수의 변수 스코프에서부터 먼저 검색되기 때문에 외부의 x에 접근하기 전에 내부 블록에 x를 선언 후 정의함으로써 외부 블록의 x에 접근을 못하게 합니다.

{
  let x = 'blue';
  console.log(x); // blue
  {
    let x = 'red';
    console.log(x); // red
  }
  console.log(x);  // blue
}

모듈 패턴 사용

아래의 예제는 모듈화를 하여 변수에 접근가능한 함수만을 제공하여 직접적으로 변수에는 접근하지 못하게 하였습니다.

function examModule() {
    var something = "cool";
    var another = [1,2,3];
 
    function doingSome() {
        console.log(something);
    }
 
    function doingAnother() {
        console.log(another);
    }
 
    return {
        doSomething: doSomething,
        doAnother: doAnother
    };
}


+ Recent posts