개발/JavaScript

[JavaScript] 생성자

미니시리 2022. 9. 11. 16:02

객체를 생성하는 함수를 생성자 함수라고 부릅니다. 다른 언어에서는 class가 있즈민 자바스크립트에서는 없기 때문에 생성자 함수를 이용하여 그 역할을 대신 합니다. 

 

생성자 함수의 필요성

  1. 여러개의 동일한 프로퍼티를 가지는 객체를 생성하기 위해서 필요.
  2. Prototype을 이용하여 메모리 절감을 위해서 필요.

 

생성자 함수의 형태

  1. 생성자명 : 대문자로 시작 (일반 함수와 구별을 하기 위한 암묵적인 규칙? 관례)
  2. 내부의 식별자 선언(var 식별자) 없음
  3. 내부의 메소스 선언(var 식별자 = function (){}) 없음
  4. "this.프로퍼티"를 통해서 프로퍼티 명시만 가능

 

생성자 함수의 사용법

  1. new 키워드를 통하여 생성자 함수를 호출한다.
    1. ex) var 생성자 = new 생성자명();
  2. 생성자 함수 생성 과정 분석
    1. new 키워드는 빈 객체 {}를 생성 합니다.
    2. 생성자 함수는 빈 객체에 생성 할 프로퍼티를 정의합니다.
    3. 함수의 인수들을 프로퍼티에 할당합니다.
    4. 생성된 Student 객체를 student에 할당합니다.

 

생성자 함수에서 사용되는 함수 정의

1. 생성자 내부에 함수 정의

function Student(_name, _math, _eng) {
            this.name = _name,
            this.math = _math,
            this.eng  = _eng,
            this.score = function allinfo() {
                return "Student name :" + 
 				this.name + "score math : " + this.math + "eng : " + this.eng;
            }
}

//출력 결과 : Student name :영수score math : 93eng : 11

 

2. Prototype을 사용한 함수 정의

function Student(_name, _math, _eng) {
    this.name = _name,
    this.math = _math,
    this.eng  = _eng
}
        
Student.prototype.score = function allinfo() {
    return "Student name :" + this.name + 
    "score math : " + this.math + "eng : " + this.eng;
}

// 출력 결과 : Student name :영수score math : 93eng : 11