전역변수 억제 방법 (모듈 패턴 미완성)

신동훈·2022년 6월 1일
0

Javascript

목록 보기
4/8

즉시 실행 함수

모든 코드를 즉시 실행 함수로 감싸주면 모든 변수는 즉시 실행 함수의 지역 변수로 변경

(function test() {
  var x = 10;
}());

console.log(x); // ReferenceError: x is not defined

네임스페이스 객체

전역에 네임스페이스 객체를 생성하여 전역변수처럼 사용하고 싶은 변수를 추가

var NS = {}; // 전역에 네임스페이스 생성

NS.name = 'Kim';

console.log(NS.name); // Kim

네임스페이스는 계층구조로도 사용 가능

var NS = {};

NS.person = {
  name: 'Kim',
  age: 10
}

console.log(NS.person.name); // Kim

※ 유용하지 않으니 지양한다.

모듈 패턴

클로저 공부 후 작성

ES6 모듈

파일 자체의 독자적인 모듈스코프
script 태그에 type = "module" 어트리뷰트를 추가하면 동작

<script type = "module" src = 'lib.mjs'></script>
<script type = "module" src = 'app.mjs'></script>

이를 사용하면 전역변수를 사용할 수 없다.
확장자는 mjs추천
아직은 Webpack등의 모듈을 사용하는 중

profile
독학 정리

0개의 댓글