'this' 키워드를 이용한 자바스크립트 상속 방법

자바스크립트는 프로토타입 기반의 언어로, 상속을 구현하기 위해 ‘this’ 키워드를 사용할 수 있습니다. 이 글에서는 ‘this’ 키워드를 이용하여 자바스크립트에서 상속을 어떻게 구현할 수 있는지 알아보겠습니다.

상속 개념 이해하기

상속은 객체지향 프로그래밍에서 중요한 개념입니다. 상속을 통해 기존의 클래스(Superclass)를 확장하여 새로운 클래스(Subclass)를 만들 수 있습니다. 이러한 상속은 코드의 재사용성을 높이고, 구조적으로 코드를 조직화하는데 도움을 줍니다.

‘this’ 키워드로 상속 구현하기

자바스크립트에서 ‘this’ 키워드를 사용하여 상속을 구현하는 방법은 다음과 같습니다.

function Superclass(name) {
  this.name = name;
}

Superclass.prototype.sayHello = function() {
  console.log("Hello, " + this.name);
};

function Subclass(name, age) {
  // Superclass의 생성자 호출
  Superclass.call(this, name);
  
  // Subclass의 속성 정의
  this.age = age;
}

// Subclass의 프로토타입을 Superclass의 인스턴스로 설정
Subclass.prototype = Object.create(Superclass.prototype);

// Subclass의 메서드 정의
Subclass.prototype.sayAge = function() {
  console.log("I am " + this.age + " years old.");
};

var obj = new Subclass("John", 25);
obj.sayHello(); // 출력: Hello, John
obj.sayAge(); // 출력: I am 25 years old.

위 코드에서는 Superclass와 Subclass라는 두 개의 클래스를 정의하고, Subclass에서 Superclass를 상속하는 방법을 보여줍니다.

Subclass는 Superclass의 생성자를 호출하기 위해 ‘this’ 키워드와 함께 call() 함수를 사용합니다. 이를 통해 Superclass의 속성을 Subclass에 상속하게 됩니다.

또한, Subclass의 프로토타입을 Superclass의 인스턴스로 설정하여 Superclass의 메서드도 상속받을 수 있습니다.

결론

이 글에서는 ‘this’ 키워드를 이용한 자바스크립트 상속 방법에 대해 알아보았습니다. ‘this’ 키워드와 call() 함수를 사용하여 상속을 구현할 수 있으며, 이를 통해 코드의 재사용성과 구조화에 도움을 줄 수 있습니다.

#JavaScript #상속