본문 바로가기
IT/javascript

자바스크립트 클래스(Class)

by 뉴코딩맨 2023. 4. 21.
자바스크립트에서 클래스는 ES6에서 새로 도입된 개념으로, 객체 지향 프로그래밍 패러다임에서 클래스를 구현하기 위한 방법을 제공합니다. 클래스를 이용하면 객체를 생성할 때 일반적으로 사용되는 생성자 함수와 프로토타입을 조합하여 작성되는 코드를 간결하게 작성할 수 있습니다.
 

클래스 정의

 

자바스크립트에서 클래스를 정의하는 방법은 다음과 같습니다.
 
javascript
 
class MyClass {
    constructor(prop1, prop2) {
        this.prop1 = prop1;
        this.prop2 = prop2;
    }
    method1() {
    // code
    }
    method2() {
    // code
    }
}
 
위 코드에서 MyClass는 클래스 이름이며, constructor는 클래스 생성 시 호출되는 생성자 함수입니다. constructor 함수 내에서는 클래스 인스턴스의 초기 상태를 설정하고, 인스턴스 프로퍼티를 정의할 수 있습니다. MyClass 클래스 내에는 method1과 method2 같은 메서드도 정의할 수 있습니다.
 

인스턴스 생성

 
클래스를 이용하여 인스턴스를 생성할 때는 new 키워드를 사용합니다.
 
const myObj = new MyClass('value1', 'value2');

 

이렇게 생성된 인스턴스는 MyClass 클래스의 모든 메서드와 프로퍼티에 접근할 수 있습니다.
 

클래스 상속

 
클래스는 상속을 지원합니다. 새로운 클래스를 정의할 때 extends 키워드를 사용하여 부모 클래스를 상속할 수 있습니다.
 
class MySubClass extends MyClass {
    constructor(prop1, prop2, prop3) {
        super(prop1, prop2);
        this.prop3 = prop3;
    }
    method3() {
    // code
    }
}
 
MySubClass 클래스는 MyClass 클래스를 상속하고 있으며, constructor 함수에서 super()를 호출하여 부모 클래스의 constructor 함수를 호출합니다. 이렇게 하면 MySubClass 인스턴스에서도 부모 클래스의 프로퍼티와 메서드를 사용할 수 있습니다. 또한 MySubClass 클래스에는 method3과 같은 새로운 메서드를 추가할 수 있습니다.
 
클래스는 코드를 간결하게 작성할 수 있도록 해주는 동시에 상속 등 객체 지향 프로그래밍 패러다임에서 일반적으로 사용되는 기능을 지원합니다. 하지만 클래스를 사용하면서 발생할 수 있는 몇 가지 주의사항도 있습니다. 예를 들어, 클래스를 상속할 때는 부모 클래스의 메서드를 오버라이드하거나, 상속 체인에서 super() 함수를 호출하는 등의 주의사항이 있습니다. 이러한 부분들을 학습하고 숙지하여 안정적인 코드를 작성할 수 있도록 노력해야 합니다.

댓글