[JavaScript] Constrcutor가 뭘까?

예진·2023년 7월 20일

JavaScript

목록 보기
1/6
post-thumbnail

🎈생성자(Constrcutor)함수의 개념


생성자 함수의 정의

생성자(Constructor)는 객체를 생성하고 초기화하는 함수

  • 생성자 함수는 일반 함수와 마찬가지로 함수 정의를 갖고 있지만, 객체를 생성하는 데에 사용됩니다.

  • 생성자 함수는 객체의 프로퍼티와 메서드를 초기화하고, 해당 객체의 인스턴스를 만드는데 사용됩니다.

  • 일반적으로 생성자 함수의 이름은 첫 글자를 대문자로 시작하여 구분합니다.

    객체: 객체는 이름과 값으로 구성된 속성들의 모음 (예시: 함수)
    프로퍼티(Property): 객체 내부의 속성, " key(키) : value(값) " 의 형태로 존재
    인스턴스(Instance): 생성자에 의해 생성된 객체
    메서드(Method): 객체 지향 프로그래밍에서 객체에 속한 함수


생성자 함수의 주요 역할

생성자 함수는 일반적으로 객체의 템플릿으로 사용되며, 객체의 프로퍼티와 메서드를 초기화하는 로직을 담고 있습니다. 생성자 함수를 사용하여 객체를 생성하면 해당 객체의 인스턴스가 만들어집니다.

  1. 객체 생성
    : 생성자 함수를 호출하면 새로운 객체가 생성됩니다. 이 객체는 생성자 함수의 프로토타입을 상속받습니다.

  2. 초기화
    : 생성자 함수는 객체의 초기 상태를 설정합니다. 객체의 프로퍼티나 메서드를 초기화하여 객체를 사용할 준비를 합니다.

  3. 인스턴스 생성
    : 생성자 함수를 "new" 키워드와 함께 호출하면 해당 생성자 함수의 인스턴스가 생성됩니다. 인스턴스는 생성자 함수를 통해 만들어진 객체를 의미합니다.


생성자 함수의 장점

생성자 함수는 빠르고 간편하게 일관성있는 객체를 생산할 수 있으며, 생성자 함수만 수정하면 수많은 객체를 다르게 만들 수 있다.



🧚‍♀️생성자 함수 예시


1. 객체 생성자 함수 정의하기

동작 원리: Car 생성자 함수를 정의한다. 이 함수는 makemodel을 인자로 받아 this를 통해 객체의 프로퍼티를 초기화한다.

function Car(make, model) {
  this.make = make;
  this.model = model;
  this.info = function() {
    console.log(`제조사: ${this.make}, 모델: ${this.model}`);
  };
}

2. 객체의 인스턴스 생성

동작 원리

  • new 키워드와 함께 Car 생성자를 호출하면, 새로운 객체의 인스턴스를 생성한다.
  • 생성된 객체의 makemodel 프로퍼티가 생성자 함수에서 인자로 받은 값으로 초기화된다.
const car1 = new Car('Hyundai', 'Sonata');
const car2 = new Car('Kia', 'Seltos');

3. 메서드 호출

동작 원리: car1.info()car2.info()를 호출하면, 각 객체의 info 메서드를 찾기 위해 먼저 자기 자신을 확인하고, 없다면 프로토타입 체인을 따라 올라가며 메서드를 탐색한다.

car1.info(); //this.info 함수는 각 객체의 정보를 출력하는 메서드
car2.info();

4. 결과 확인

동작 원리: 결과적으로 info() 메서드가 생성자 함수 자체에 정의되어 있기 때문에, 각 객체는 자신만의 info() 메서드를 호출하여 자신의 정보를 출력한다.

//출력 결과
제조사: Hyundai, 모델: Sonata
제조사: Kia, 모델: Seltos


⭐생성자 함수 요약


  • 생성자 함수는 객체를 생성하는 데 사용되며, 객체의 템플릿 역할을 합니다.
  • 생성자 함수를 사용하여 객체를 생성하면 코드의 재사용성이 높아지고, 객체들 간에 공통된 기능을 공유할 수 있습니다

0개의 댓글