-
javascript 자바스크립트 var app = app || {} 의미JavaScript 2021. 9. 20. 17:48반응형
자바스크립트를 잘하는 개발자가 뭔가 스크립트를 모듈로 짤때 이러한 문법을 봤을것이다.
|| 는 OR를 의미한다.
var app = app || {} 중에서
빨간색 app부분이 기존a pp객체가 있으면 유지하고 없으면 app을 {}로 빈 객체를 할당한다.
var app = app || {} 는
if(!app) {
var app={};
}
와 같은 뜻이다.
왜 사용할까?
// apple.js 파일 내용 var app = {}; app.apple = function() { alert('I like Aplle!'); }; // orange.js 파일 내용 var app = {}; app.orange = function() { alert('I like Orange!'); };
한 html 파일에 첫줄 apple.js 랑 두번째줄 orange.js파일이 임포트 되있다고 할 때 html이 로드되면 apple.js의 apple함수는 사용 할 수없다. 이유는 orange.js에서 app객체를 재정의 하기 때문이다. 따라서 var app = app || {} 을 해서 app객체가 있다면 app에 다시 할당한다.
// apple.js 파일 내용 var app = app || {}; app.apple = function() { alert('I like Aplle!'); }; // orange.js 파일 내용 var app = app || {}; app.orange = function() { alert('I like Orange!'); };
이렇게 두 js파일에 초기화만 바꿔주면 둘다 같은 app객체의 apple, orange함수를 사용 할 수 있다.
결론은 .js 파일 상단에서 볼 때 이 특정 패턴은 네임스페이스 , 즉 전역 객체를 남용하지 않고 함수와 변수를 생성할 수 있는 명명된 객체 를 생성하는 데 사용된다.
반응형'JavaScript' 카테고리의 다른 글
[javascript] 자바스크립트 some & every 메소드란? (0) 2022.06.18 [javascript] 자바스크립트 map & reduce 메소드란? (0) 2022.06.10 javascript evnet?? 자바스크립트 이벤트란?? (0) 2021.09.11 javascript 자바스크립트 map, reduce, filter, find, every 응용하기 (0) 2020.10.10 e.preventDefault() , e.stopPropagation()란? (0) 2020.08.14