유사한 객체를 여러 개 만들어야 할 때 사용됩니다. new 연산자와 생성자 함수를 사용하면 유사한 객체 여러개를 쉽게 만들 수 있습니다.
생성자 함수도 결국에는 일반 함수입니다. (일반 함수와 구분하기 위해 첫 글자를 대문자로 적을 뿐..)
일반 함수와의 기술적인 차이는 없습니다.
주의사항 생성자 함수는 첫 글자를 대문자로 시작해야합니다. 반드시 'new' 연산자를 붙여 실행해야 합니다.
function User(name){
this.name = name;
this.isAdmin = false;
}
let user = new User("KJ");
console.log(user.name); // KJ 출력
console.log(user.isAdmin); // false 출력
일반적으로 생성자 함수에는 return이 없습니다. (자동 반환되기 때문에 명시적으로 사용할 필요가 없습니다.) 하지만 return 이 있다면 자동반환을 무시하고 다른 객체가 반환됩니다.
ex) return의 자동 반환을 무시하고 객체를 반환하는 예
function Animal(){
this.name = "Tiger";
return {name: 'Lion'};
}
console.log(new Animal().name); // Lion 반환
ex) return 없는 경우
function Animal(){
this.name = 'Tiger';
}
console.log(new Animal().name); // Tiger 반환
생성자 함수를 통해 객체를 자유롭게 구성할 수도 있습니다.
ex)
function User(name){
this.name = name;
this.greeting = function (){
console.log("제 이름은" + this.name + "입니다.");
};
}
let kj = new User("KJ"); // 제 이름은 KJ입니다.
kj.greeting();