Web

JavaScript 클래스 정의 방법 비교

htcrefactor 2019. 9. 14. 16:51

1. 리터럴 방식

- 클래스 만드는 용도가 아니며 주로 여러 개의 매개변수를 그룹으로 묶어 함수의 매개변수로 보낼 때 사용

- 정의와 함께 인스턴스가 만들어지는 장점이 있음.

- 단, 인스턴스는 오직 하나만 만들 수 있음(재사용 X)

var NameOfInstance = {
    property1: initialValue,
    property2: initialValue, 
    
    method1: function() {
    
    }
    
    method2: function() {
    
    }
}

 

2. 함수 방식

- 간단한 클래스 제작 시 사용

- 인스턴스마다 메서드가 독립적으로 만들어지는 단점이 있음

function NameOfClass() {
    this.property1 = initialValue;
    this.property2 = initialValue;
    
    this.method1 = function() {
    
    }
    
    this.method2 = function() {
    
    }
 }

 

3. 프로토타입 방식

- 일반적인 클래스 제작 방법

- 인스턴스마다 공통된 메서드를 공유해서 사용하는 장점이 있음(함수 방식의 단점 극복)

function NameOfClass() {
    this.property1 = initialValue;
    this.property2 = initialValue;
}

NameOfClass.prototype.method1 = function() {

}

NameOfClass.prototype.method2 = function() {

}