[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');

위 예제에서 person1person2Person 함수를 호출하여 생성된 인스턴스입니다.

결론

프로토타입은 객체의 상속을 가능케 하고, 인스턴스는 클래스(함수)의 실제 객체를 나타냅니다. 정확한 개념을 숙지하는 것은 JavaScript 프로그래밍을 이해하는 데 중요합니다.

참고 자료: MDN Web Docs