본문 바로가기
IT/javascript

자바스크립트 생성자 함수(Constructor Function)

by 뉴코딩맨 2023. 4. 20.
자바스크립트에서 객체를 생성하는 방법에는 생성자 함수를 이용하는 방법이 있습니다. 생성자 함수란 일반적인 함수와 마찬가지로 동작하지만, 객체를 생성할 때 사용됩니다. 생성자 함수는 new 연산자와 함께 사용되며, 객체를 생성할 때마다 생성자 함수를 호출하여 객체를 초기화합니다.
 
생성자 함수는 함수 선언문, 함수 표현식, 화살표 함수 등 여러가지 형태로 정의할 수 있습니다. 일반적으로 생성자 함수의 이름은 첫 글자를 대문자로 작성하여 구분합니다.
 
생성자 함수 내부에서는 this 키워드를 사용하여 새로운 객체를 가리킵니다. this를 이용하여 객체의 프로퍼티와 메서드를 정의할 수 있습니다. 생성자 함수 내부에서는 일반 함수와 마찬가지로 매개변수를 사용할 수 있습니다.

 

 

사용법

 
예를 들어, 다음과 같이 Person 생성자 함수를 정의하여 name과 age를 프로퍼티로 가지는 객체를 생성할 수 있습니다.
 
function Person(name, age) {
    this.name = name;
    this.age = age;
}

var person1 = new Person("John", 30);
var person2 = new Person("Jane", 25);
 
위의 코드에서 Person 생성자 함수를 정의하고, new 연산자를 이용하여 person1과 person2 객체를 생성합니다. 생성된 객체는 Person 생성자 함수 내부에서 정의한 name과 age 프로퍼티를 가지며, 이 값은 new 연산자로 전달된 매개변수로 초기화됩니다.

 

 
생성자 함수를 이용하여 객체를 생성하는 것은 객체의 생성과 초기화를 하나의 작업으로 처리할 수 있으며, 코드의 재사용성과 유지보수성을 높일 수 있습니다. 또한 생성자 함수를 이용하여 객체를 생성할 때마다 동일한 프로퍼티와 메서드를 갖는 객체를 생성할 수 있으므로, 객체의 일관성을 유지할 수 있습니다.
 
생성자 함수를 이용하여 객체를 생성할 때 주의할 점으로는, 생성자 함수 내부에서 return문을 사용하는 경우가 있습니다. 이 경우에는 this가 아닌 return으로 지정한 객체가 반환됩니다. 또한 생성자 함수 내부에서 메서드를 정의할 때, 일반 함수와 달리 prototype 객체를 이용하여 정의해야 합니다. 이를 통해 생성된 객체들이 메모리를 공유할 수 있습니다.
 

댓글