[javascript] 상속과 프로토타입 체인

목차

  1. 상속
  2. 프로토타입 체인

상속

자바스크립트는 프로토타입 기반 언어로서 상속을 지원합니다. 상속은 객체 간에 코드를 재사용하는 중요한 방법입니다. 상속을 통해 부모 객체의 속성과 메서드를 자식 객체로 복사하여 자식 객체가 부모 객체의 기능을 재사용할 수 있습니다.

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

Animal.prototype.walk = function() {
  return this.name + ' is walking';
};

function Cat(name) {
  Animal.call(this, name);
}

Cat.prototype = Object.create(Animal.prototype);
Cat.prototype.constructor = Cat;

Cat.prototype.meow = function() {
  return 'Meow!';
};

let myCat = new Cat('Tom');
console.log(myCat.walk()); // 'Tom is walking'
console.log(myCat.meow()); // 'Meow!'

상속을 위해 prototype을 사용하여 부모 객체의 기능을 자식 객체로 복사하고, 이를 이용하여 자식 객체를 생성합니다.

프로토타입 체인

모든 JavaScript 객체는 다른 객체에 대한 참조인 프로토타입 객체를 가집니다. 이것이 프로토타입 체인이며, 객체의 속성이나 메서드에 접근할 때 해당 객체에 존재하지 않는다면 프로토타입 체인을 따라 상위 객체에서 찾게 됩니다.

let myCat = new Cat('Tom');
console.log(myCat.walk()); // 'Tom is walking'

myCat 객체에서 walk() 메서드를 호출할 때, myCat에 해당 메서드가 없기 때문에 자신의 프로토타입을 확인하고, 그 후 부모 객체의 프로토타입으로 이동하여 해당 메서드를 찾아 호출합니다.

상속과 프로토타입 체인은 JavaScript에서 객체 지향 프로그래밍을 구현하는 데 중요한 개념입니다. 이러한 개념을 잘 이해하고 활용하여 유연하고 강력한 코드를 작성할 수 있습니다.

이상으로 JavaScript의 상속과 프로토타입 체인에 대해 알아보았습니다. 감사합니다.

참고: