생성자 함수를 즉시실행함수로 감싸는 이유가 궁금합니다.
예제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();
回答 1
1
안그래도 되는게 맞습니다.
다만 생성자와 관련한 함수를 스코프로 가둠으로써 보다 명확히 구분하려는 차원에서 그렇게 작성하신게 아닐까 합니다.
나아가 당장은 스코프가 무의미하지만, 나중에 생성자함수 초기화 과정에서 한 번만 쓰일 변수가 필요해진다면 그 의의가 보다 뚜렷해질 것 같기도 하네요.
선생님 공유해주신 핸드북에 링크가 몇개 잘못되었어요
0
13
2
62강 실습자료가 잘못되었습니다.
0
13
1
코드 자료는 없는걸까요?
0
21
2
강의 목표
0
33
1
강의 노트 위주로 학습
0
34
1
쿠키 생성 관련
0
64
3
JWT auth error invalid token
0
59
2
경력기술서는 어떤 방향이 좋을까요?
0
52
2
MSA 와 BFF 아키텍처 설명 부분에 대한 문의
0
50
1
eslint.config.js 설정 질문입니다.
0
63
2
7강 흐름 제어 아키택쳐 코드 순서
1
53
1
수업자료 어디서 찾아볼 수 있나요?
0
47
2
함수 강의의 정답.. 어떤가요?
0
40
1
깃권한요청드립니다
0
39
1
<div id="banner">배너 이미지</div> 관련 질문
0
34
1
강의자료
0
41
1
윈도우에서 Node js를 설치하고 싶어요
0
37
0
addToFile function에서 path를 사용해 새로운 파일을 생성
0
46
1
브라우저의 ES6 모듈(ESM)을 사용하도록 Babel을 설정
0
296
2
할당문
0
341
1
함수 부분 질문입니다.
0
509
1
실행컨텍스트에서 BindingObject를 통한 객체의 프로퍼티와 메서드 질문
0
590
1
코어 자바스크립트 예제 5-14 질문
0
568
3
안녕하세요.
0
464
1

