즉시 실행 함수
(function () {
var foo = 10;
}());
console.log(foo); // ReferenceError
네임스페이스 객체
var MYAPP = {};
MYAPP.name = 'leeeunji';
MYAPP.person = {
name: 'leeeunji',
country: 'korea'
}
console.log(MYAPP.name); // leeeunji
console.log(MYAPP.person.country); // korea
모듈 패턴
var Counter = (function () {
var num = 0; // private 변수
return {
increase() {
return ++num;
},
decrease() {
return --num;
}
};
}());
console.log(Counter.num); // undefined
console.log(Counter.increase()); // 1
console.log(Counter.increase()); // 2
console.log(Counter.decrease()); // 1
console.log(Counter.decrease()); // 0
ES6 모듈
<script type="module" src="lib.mjs"></script>
export default MyComponent;
// 다른 파일에서
import MyComponent from '/myComponent'