[javascript] 상속과 상속 체인 구현 방법

JavaScript에서 객체 지향 프로그래밍을 할 때 상속을 구현하는 방법을 살펴보겠습니다.

1. 프로토타입을 이용한 상속

JavaScript에서 상속은 프로토타입 체이닝을 통해 구현됩니다.

아래는 부모 객체로부터 상속받는 자식 객체를 만드는 간단한 예제입니다.

function 부모(속성) {
    this.속성 = 속성;
}

부모.prototype.메서드 = function() {
    // 메서드 구현
}

function 자식(속성, 추가속성) {
    부모.call(this, 속성); // super()와 같은 역할
    this.추가속성 = 추가속성;
}

자식.prototype = Object.create(부모.prototype);
자식.prototype.constructor = 자식;

위의 예제에서는 부모 함수로부터 상속받는 자식 함수를 만들었습니다. Object.create 메소드를 이용하여 자식 객체의 프로토타입을 부모 객체의 프로토타입으로 설정하면 자식 객체는 부모 객체의 메서드를 사용할 수 있습니다.

2. 클래스 문법을 이용한 상속

ECMAScript 2015(ES6)부터 JavaScript는 클래스 문법을 지원합니다. 이를 이용하면 더 간단하게 상속을 구현할 수 있습니다.

class 부모 {
    constructor(속성) {
        this.속성 = 속성;
    }

    메서드() {
        // 메서드 구현
    }
}

class 자식 extends 부모 {
    constructor(속성, 추가속성) {
        super(속성); // super()와 같은 역할
        this.추가속성 = 추가속성;
    }
}

ES6에서는 extends 키워드를 사용하여 상속을 쉽게 구현할 수 있습니다. super 키워드를 사용하여 부모 클래스의 생성자와 메서드를 호출할 수 있습니다.

결론

JavaScript에서 상속을 구현하는 방법에는 프로토타입을 이용한 방법과 클래스 문법을 이용한 방법이 있습니다. ES6 이후에는 클래스 문법을 이용한 상속이 보다 간편하고 가독성이 좋기 때문에 일반적으로 더 많이 사용됩니다.

더 많은 정보를 원하시면 MDN web docs를 참고해보세요.