본문 바로가기

자바스크립트

비공개 함수 추가하기

자바스크립트는 수정할 수 없는 프로퍼티 기능을 지원한다.

그러나 주요 브라우저에서 아직 이 기능을 구현하지 않았으므로 이용할 수가 없다. 대신 자바스크립트의 익명 함수를 이용해 내부에서만 접근할 수 있는 비고액 범위를 만들 수 있다.

var Person = function() {};

(function() {
    var findById = function() {};

    Person.find = function(id) {
        if(typeof id == 'integer') return findById(id);
    }
})();

위 예제에서는 클래스의 모든 프로퍼티를 익명 함수로 감쌌다. 따라서 지역 변수 findById는 현재 범위에서만 접근할 수 있다. Person 변수는 전역으로 정의했으므로 어디에서나 접근할 수 있다.

 

키워드 var을 사용하면 전역 변수가 되므로 변수를 정의할 때 var은 절대 사용하지 않는다. 전역변수를 정의하고 싶다면 전역 영역에서 변수를 선언하거나 윈도우에서 프로퍼티로 선언한다.

(function(exports) {
    var foo = 'bar';
    
    // 변수 노출
    exports.foo = foo;
})(window);

'자바스크립트' 카테고리의 다른 글

ORM 만들기  (0) 2022.04.09
MVC와 명칭공간  (0) 2022.04.09
클래스 라이브러리에서 범위 조절하기  (0) 2022.04.03
함수 호출  (0) 2022.04.03
클래스 라이브러리에 상속 기능 추가하기  (0) 2022.04.03