여기에 user의 정보를 담은 객체가 하나 있다. 그 객체의 모습은 이러할것이다.
let user = {
name : 'Hoo',
age : 27,
}
그런데 이런 비슷한 객체를 여러개 만들어야 하는 상황이 온다면 일일이 하드 코딩을 해야할까?
이럴때 사용 가능한 것이 생성자 함수이다.
function User(name, age) {
this.name = name;
this.age = age;
}
let user1 = new User('Hoo', 27);
let user2 = new User('gyu', 24);
함수의 첫 글자는 대문자로 시작하여 User이며 함수를 호출 할때에는 new 연산자를 사용한다.
user1 // {name: 'Hoo', age: 27}
동작원리는 다음과 같다.
new 함수명();
위 코드가 실행되면 빈 객체를 만들고 this에 할당한다. 그 후 this에 프로퍼티들을 추가한다. 그 후 반환한다.
this = {}
return this;
이 두개의 코드가 생략된 셈이다. 그러나 동작한다. 일일이 객체를 적는 것 보다 훨씬 빠르고 효율적으로 작성할 수 있다.(사실 너무 놀랍다..)