자바스크립트에서 클래스는 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() 함수를 호출하는 등의 주의사항이 있습니다. 이러한 부분들을 학습하고 숙지하여 안정적인 코드를 작성할 수 있도록 노력해야 합니다.
'IT > javascript' 카테고리의 다른 글
자바스크립트 class super (0) | 2023.04.24 |
---|---|
자바스크립트 class extends (0) | 2023.04.24 |
자바스크립트 생성자 함수(Constructor Function) (0) | 2023.04.20 |
자바스크립트 팩토리 함수(Factory Function) (0) | 2023.04.20 |
자바스크립트 axios 사용법 (0) | 2023.04.20 |
댓글