[javascript] 프로토타입 체인에서 생성자 함수 사용

JavaScript에서 생성자 함수는 객체를 만들고 초기화하는 데 사용됩니다. 이러한 생성자 함수는 프로토타입을 사용하여 메소드와 속성을 상속하고, 프로토타입 체인을 통해 객체 간의 관계를 형성합니다.

생성자 함수의 기본 구조

생성자 함수는 new 키워드로 호출되며 다음과 같은 구조를 가집니다.

function Person(name, age) {
  this.name = name;
  this.age = age;
}

위의 예제에서 Person 함수는 name 과 age 속성을 가진 객체를 만들어 반환합니다.

프로토타입 체인

JavaScript에서 모든 객체는 prototype 링크를 갖습니다. 이 prototype 링크는 해당 객체의 부모 역할을 합니다.

생성자 함수로 만든 객체는 자신의 프로토타입 체인을 따라 상위 프로토타입 객체의 속성과 메소드에 접근할 수 있습니다.

예제

function Person(name, age) {
  this.name = name;
  this.age = age;
}

Person.prototype.sayHello = function() {
  console.log('안녕하세요, 저는 ' + this.name + '입니다.');
}

let person1 = new Person('철수', 20);
let person2 = new Person('영희', 25);

person1.sayHello(); // 안녕하세요, 저는 철수입니다.
person2.sayHello(); // 안녕하세요, 저는 영희입니다.

위의 예제에서 sayHello 메소드는 Person 생성자 함수의 프로토타입에 추가되어, 생성된 객체들이 이를 공유하여 사용할 수 있습니다.

결론

생성자 함수와 프로토타입 체인을 이용해 JavaScript에서 객체 간의 상속을 구현할 수 있습니다. 이를 통해 유사한 객체들 간의 코드 중복을 방지하고 메모리를 절약할 수 있습니다.

참고 문헌: