
생성자(Constructor)는 객체를 생성하고 초기화하는 함수
생성자 함수는 일반 함수와 마찬가지로 함수 정의를 갖고 있지만, 객체를 생성하는 데에 사용됩니다.
생성자 함수는 객체의 프로퍼티와 메서드를 초기화하고, 해당 객체의 인스턴스를 만드는데 사용됩니다.
일반적으로 생성자 함수의 이름은 첫 글자를 대문자로 시작하여 구분합니다.
객체: 객체는 이름과 값으로 구성된 속성들의 모음 (예시: 함수)
프로퍼티(Property): 객체 내부의 속성, " key(키) : value(값) " 의 형태로 존재
인스턴스(Instance): 생성자에 의해 생성된 객체
메서드(Method): 객체 지향 프로그래밍에서 객체에 속한 함수
생성자 함수는 일반적으로 객체의 템플릿으로 사용되며, 객체의 프로퍼티와 메서드를 초기화하는 로직을 담고 있습니다. 생성자 함수를 사용하여 객체를 생성하면 해당 객체의 인스턴스가 만들어집니다.
객체 생성
: 생성자 함수를 호출하면 새로운 객체가 생성됩니다. 이 객체는 생성자 함수의 프로토타입을 상속받습니다.
초기화
: 생성자 함수는 객체의 초기 상태를 설정합니다. 객체의 프로퍼티나 메서드를 초기화하여 객체를 사용할 준비를 합니다.
인스턴스 생성
: 생성자 함수를 "new" 키워드와 함께 호출하면 해당 생성자 함수의 인스턴스가 생성됩니다. 인스턴스는 생성자 함수를 통해 만들어진 객체를 의미합니다.
생성자 함수는 빠르고 간편하게 일관성있는 객체를 생산할 수 있으며, 생성자 함수만 수정하면 수많은 객체를 다르게 만들 수 있다.
동작 원리:
Car생성자 함수를 정의한다. 이 함수는make와model을 인자로 받아this를 통해 객체의 프로퍼티를 초기화한다.
function Car(make, model) {
this.make = make;
this.model = model;
this.info = function() {
console.log(`제조사: ${this.make}, 모델: ${this.model}`);
};
}
동작 원리
new키워드와 함께Car생성자를 호출하면, 새로운 객체의 인스턴스를 생성한다.- 생성된 객체의
make와model프로퍼티가 생성자 함수에서 인자로 받은 값으로 초기화된다.
const car1 = new Car('Hyundai', 'Sonata');
const car2 = new Car('Kia', 'Seltos');
동작 원리:
car1.info()와car2.info()를 호출하면, 각 객체의info메서드를 찾기 위해 먼저 자기 자신을 확인하고, 없다면 프로토타입 체인을 따라 올라가며 메서드를 탐색한다.
car1.info(); //this.info 함수는 각 객체의 정보를 출력하는 메서드
car2.info();
동작 원리: 결과적으로
info()메서드가 생성자 함수 자체에 정의되어 있기 때문에, 각 객체는 자신만의info()메서드를 호출하여 자신의 정보를 출력한다.
//출력 결과
제조사: Hyundai, 모델: Sonata
제조사: Kia, 모델: Seltos