프로토타입 기반 상속과 자바스크립트 생성자의 관계

프로토타입 기반 상속은 자바스크립트의 핵심 개념 중 하나입니다. 프로토타입 기반 상속은 객체 지향 프로그래밍에서 클래스가 아닌 객체를 기반으로 상속을 구현하는 방식입니다. 자바스크립트에서는 프로토타입 체인을 통해 상속을 구현합니다.

자바스크립트 생성자 함수

생성자 함수는 자바스크립트에서 객체를 생성하기 위해 사용되는 특별한 함수입니다. 생성자 함수는 new 키워드와 함께 호출되어 객체를 생성하고 초기화하는 역할을 합니다. 생성자 함수는 객체의 프로퍼티와 메서드를 정의하고, 해당 객체의 인스턴스를 생성할 수 있습니다.

예를 들어, 다음은 Person이라는 생성자 함수를 정의한 후, new 키워드를 사용하여 객체의 인스턴스를 생성하는 코드입니다.

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

let john = new Person('John', 25);
console.log(john.name); // 'John'
console.log(john.age); // 25

프로토타입 기반 상속

프로토타입 기반 상속은 생성자 함수의 프로토타입 객체를 이용하여 상속을 구현합니다. 자식 객체는 부모 객체의 프로토타입을 상속받아 부모 객체의 프로퍼티와 메서드를 사용할 수 있게 됩니다.

다음은 Person 생성자 함수를 상속하여 Student라는 자식 객체를 생성하는 예제입니다.

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

Person.prototype.greet = function() {
    console.log('Hello, ' + this.name);
}

function Student(name, grade) {
    Person.call(this, name);
    this.grade = grade;
}

Student.prototype = Object.create(Person.prototype);
Student.prototype.constructor = Student;

let john = new Student('John', 5);
john.greet(); // 'Hello, John'
console.log(john.grade); // 5

위의 예제에서, Student 생성자 함수는 Person 생성자 함수를 상속받기 위해 Object.create() 함수를 사용하여 부모 객체의 프로토타입을 복사합니다. 이렇게 함으로써 Student 객체는 Person 객체의 프로퍼티와 메서드를 상속받을 수 있게 됩니다.

#프로토타입상속, #자바스크립트생성자