[javascript] 프로토타입과 인스턴스의 차이점
프로토타입(Prototype)
프로토타입은 원형이나 기반이 되는 모델을 의미합니다. JavaScript에서는 객체 간 상속을 구현하는 데 사용됩니다. 모든 객체는 프로토타입을 가지고 있으며, 다른 객체로부터 프로퍼티와 메서드를 상속받을 수 있습니다.
프로토타입은 객체의 템플릿으로 볼 수도 있습니다. 새로운 객체가 생성될 때, 해당 객체는 프로토타입을 기반으로 하며, 프로토타입의 프로퍼티와 메서드를 상속받습니다.
function Person(name) {
this.name = name;
}
Person.prototype.sayHello = function() {
console.log('Hello, my name is ' + this.name);
};
위 예제에서 Person
함수의 프로토타입에 sayHello
메서드를 추가했습니다. 이제 Person
으로부터 생성된 객체들은 sayHello
메서드를 사용할 수 있습니다.
인스턴스(Instance)
인스턴스는 클래스의 실제 객체를 가리킵니다. JavaScript에서는 클래스가 아닌 함수로 객체를 생성하므로, 인스턴스는 함수를 호출하여 생성된 객체를 의미합니다.
let person1 = new Person('Alice');
let person2 = new Person('Bob');
위 예제에서 person1
과 person2
는 Person
함수를 호출하여 생성된 인스턴스입니다.
결론
프로토타입은 객체의 상속을 가능케 하고, 인스턴스는 클래스(함수)의 실제 객체를 나타냅니다. 정확한 개념을 숙지하는 것은 JavaScript 프로그래밍을 이해하는 데 중요합니다.
참고 자료: MDN Web Docs