생성자 함수를 즉시실행함수로 감싸는 이유가 궁금합니다.
예제25-01을 보면
생성자를 즉시실행함수로 감싸는 패턴이 있던데요.
var Person = (function(){
function Person(name) {
this.name = name;
}
Person.prototype.sayHi = function(){
console.log('Hi! My name is ' + this.name);
};
return Person;
})();
var me = new Person('Lee');
me.sayHi();
굳이 이렇게 하는 이유는 무엇인가요?
아래와 같이 그냥 일반 함수 선언문으로 해도 될것 같은데요.
function Person(name) {
this.name = name;
}
Person.prototype.sayHi = function(){
console.log('Hi! My name is ' + this.name);
}
var me = new Person('Lee');
me.sayHi();
혹시 함수 호이스팅? 때문에 그런거면 변수에 생성자를 할당해면 될것 같은데요...
즉시실행함수를 쓰는 이유를 도무지 모르겠네요;
var Person = function Person(name) {
this.name = name;
}
Person.prototype.sayHi = function(){
console.log('Hi! My name is ' + this.name);
}
var me = new Person('Lee');
me.sayHi();
Câu trả lời 1
1
안그래도 되는게 맞습니다.
다만 생성자와 관련한 함수를 스코프로 가둠으로써 보다 명확히 구분하려는 차원에서 그렇게 작성하신게 아닐까 합니다.
나아가 당장은 스코프가 무의미하지만, 나중에 생성자함수 초기화 과정에서 한 번만 쓰일 변수가 필요해진다면 그 의의가 보다 뚜렷해질 것 같기도 하네요.
몽고 db 접속 오류
0
8
0
3강 질문
0
22
2
74. 데이터 캐시 - 1 (이론) 강의 영상 누락
0
30
1
2강 nodejs 3단계 설명 질문
0
35
1
imagesLoaded에 관한 질문
0
19
2
useEffect와 lifecycle문의
0
28
2
프론트엔드 학습 수준 문의
0
39
2
리액트 챕터별 코드에서 eslint 설정파일이 없어요
0
48
2
최근 코테, 과제 테스트 트렌드
0
70
2
lucide react 아이콘 설치
0
46
2
17강 zustand store 서버에서 생성
1
38
1
문의관련 문의
0
45
2
next.js 를 2대이상 실행하는 경우 제공하는 cache 기능들은 어떻게 되나요?
0
59
2
76. 전문성 더하기: 놓치면 아쉬운 관련 기술들 수업 자료가 없어요.
0
49
2
ai 도구 질문
0
33
1
저는 왜 콘솔에서 props가 한 줄만 찍히나요?
0
48
1
렌더링 차단 리소스 javascript 실행에 관련해서 질문 있습니다.
0
48
2
데이터 로딩중 화면만 계속 나와요!!
0
55
2
브라우저의 ES6 모듈(ESM)을 사용하도록 Babel을 설정
0
279
2
할당문
0
334
1
함수 부분 질문입니다.
0
495
1
실행컨텍스트에서 BindingObject를 통한 객체의 프로퍼티와 메서드 질문
0
579
1
코어 자바스크립트 예제 5-14 질문
0
542
3
안녕하세요.
0
461
1

