init() 을 쓰는 이유 질문드려요!
21038
13 asked
클로저 강의를 듣다보니 문득 궁금한것이 생겼는데요.
자바스크립트에서는 다른 언어들(c나 자바) 처럼 init 이라는 개념자체가 없다고 알고있습니다.
어느 패턴은 js 파일 맨 밑에
var test = document.getElementById("test");
// 함수부분은 생략.
function init() {
testFunc();
test.addEventListener("click", test2Func);
}
init();
위와 같이 init 함수를 임의로 만들어놓드라구요.
(제가 생각하기에는)
그 안에다 최초 실행되는 이벤트들을
보기 좋게 모아둔 함수 인것 같은데요.
구글에 검색해보았을때는 키워드가 잘못된건지,
위 코드와 같은 패턴에 대한 정보를 찾지 못하겠습니다.ㅜ
대강... 조각들을 맞춰보면
변수들을 계속해서 유지? 사용하기 위한??
초기화...?? 를 위한 함수 라는데
그게 정확히 있고 없고에 차이를 모르겠습니다.
답변 주시면 감사하겠습니다!
강의 항상 잘보고있어요
Answer 4
2
보통은 전역변수를 아예 선언하지 않거나, 최소한도로만 선언하는 방식으로 합니다.
다음 예제와 함께 '네임스페이스 패턴'을 검색해보시기 바랍니다.
var APP = (function() {
function handleClick() { ... }
var test = document.getElementById("test");
var BASE_COLOR = "rgb(52, 73, 94)";
test.style.color = BASE_COLOR;
test.addEventListener("click", handleClick);
// 초기화 이후에도 계속 사용해야 하는 변수들만 아래 객체에 담아 전달.
return {
test: test,
BASE_COLOR: BASE_COLOR
}
})();
// 이후 APP.test / APP.BASE_COLOR 등으로 호출해서 사용.
0
모듈화와 관계있다고 생각합니다.
초기화 할 변수를 함수에 넣고 함수를 호출하면 간단하게 초기화가 가능합니다.
간단한 코드인 경우에는 큰 차이가 없지만 반복적으로 호출하는 경우나 다른 곳에서 사용하게 되는 경우에는 간단하게 호출하거나 가져다 쓸 수 있을것 같습니다.
0
제 머리의 한계인가봅니다... 확 와닿지가 않네요.
2) 전역객체를 보호
-> 요 의미가 뭘까요?
var test = document.getElementById("test");
var BASE_COLOR = "rgb(52, 73, 94)";
// handleClick 함수 생략
function init() {
test.style.color = BASE_COLOR;
test.addEventListener("click", handleClick);
}
init();
init 안에다 넣든 밖으로 빼든 가독성 차이 말고는 떠오르지가 않네요.
init 함수 내부에 넣으면... 지역변수(스코프가 init 지역으로 한정됨) 개념으로 되어
init 함수 밖에서는 컨트롤 할 수 없으니
-> 요게 곧 보호받는다는걸까요???
'전역객체를 보호' 한다는 의미는 아닌거 같은데 말이죠..
인스턴스에서 prototype 프로퍼티에 직접 접근해야하는 이유
0
59
1
setTimeout 에서 this
0
81
1
2강부터 영상이 나오지 않습니다.
0
175
1
자바스크립트 주석에 이상한 점이 있어서 문의드립니다.
0
220
2
return 문 안에 여러 함수가 존재하는 것이 이해되지 않습니다.
1
259
1
클래스 static 멤버
1
253
1
실행컨텍스트와 스택프레임
2
567
1
프로토타입으로 상속할때 브릿지 사용 이유
0
320
1
호이스팅 관련 질문
1
335
1
책 66p. 예제 3-2 질문입니다.
0
356
1
강의 내용 10:58 캡슐화 질문입니다.
1
399
1
강의 내용 5:10 질문입니다.
1
422
2
전역 공간에서의 this
0
426
2
18:31 addEventListener의 this
1
480
1
outerEnvironmentReference 질문
1
372
1
실행 컨텍스트와 클로저에 대해 질문드립니다.
1
448
1
Object.prototype.constructor의 [[prototype]] ?
1
658
1
함수를 값으로 할당할 때
2
457
1
15:54 'ddd' 사라지는 오류?
4
375
1
프로토타입 getPrototypeOf(instance).constructor(n,a) 질문입니다.
1
405
1
기본형/가변형 질문입니당
0
333
0
선생님 그러면 섹션 0만 봐도 무방한가요!?
0
336
1
Hoisting과 environmentRecord에 관한 질문입니다.
1
292
1
안녕하세요, 데이터 변경 질문입니다.
0
329
1

