Language/Javascript
scope - 3 [변수 숨기기]
옥수수수염차
2017. 7. 28. 01:33
변수를 숨기는 방법들
var를 이용하는 방법
아래의 예제에서 var를 이용하여 b를 외부로부터 숨겼습니다. var를 사용하지 않고 선언할 경우 전역으로 선언되기 때문입니다.
function f1(a) {b = a + f2(a);console.log(b);}f1(2); // 3
같은 이름을 선언하는 방법
아래의 예제는 같은 이름을 선언하여 외부의 x에 접근하지 못하도록 하였습니다.스코프 체인 성질 을 이용하여 정의되고 있는 함수의 변수 스코프에서부터 먼저 검색되기 때문에 외부의 x에 접근하기 전에 내부 블록에 x를 선언 후 정의함으로써 외부 블록의 x에 접근을 못하게 합니다.
{console.log(x); // blue{console.log(x); // redconsole.log(x); // blue}
모듈 패턴 사용
아래의 예제는 모듈화를 하여 변수에 접근가능한 함수만을 제공하여 직접적으로 변수에는 접근하지 못하게 하였습니다.
function examModule() {var another = [1,2,3];doAnother: doAnother}