[javascript] 프로토타입과 인스턴스의 차이점
자바스크립트에서 프로토타입(prototype)과 인스턴스(instance)는 객체지향 프로그래밍에서 중요한 개념입니다. 이 두 용어를 제대로 이해하는 것은 자바스크립트를 이해하는 데 중요합니다. 이 글에서는 프로토타입과 인스턴스의 차이점에 대해 알아보겠습니다.
프로토타입(Prototype)
프로토타입은 모든 객체가 가지고 있는 속성으로, 다른 객체로부터 상속받은 메소드나 프로퍼티가 담겨 있는 객체입니다. 모든 함수의 기본 속성 중 하나가 prototype
입니다. 이 prototype
속성에는 해당 함수로부터 만들어진 새로운 객체의 부모가 되는 객체가 할당됩니다.
function Person(name) {
this.name = name;
}
Person.prototype.sayHello = function() {
console.log("Hello, my name is " + this.name);
};
const person1 = new Person("Alice");
const person2 = new Person("Bob");
person1.sayHello(); // 출력: Hello, my name is Alice
person2.sayHello(); // 출력: Hello, my name is Bob
위의 예제에서 Person.prototype
은 모든 Person
인스턴스가 상속받는 메소드 sayHello
를 포함하고 있습니다.
인스턴스(Instance)
인스턴스는 클래스의 실제 사례(instance)를 나타냅니다. 클래스로부터 만들어진 각 객체는 해당 클래스의 인스턴스입니다.
function Circle(radius) {
this.radius = radius;
}
const circle1 = new Circle(5);
const circle2 = new Circle(10);
위의 예제에서 circle1
과 circle2
는 Circle
클래스의 인스턴스입니다.
결론
프로토타입은 상속을 통해 메소드와 프로퍼티를 공유할 수 있게 해주는 객체이고, 인스턴스는 클래스의 구체적인 사례를 나타냅니다. 프로토타입과 인스턴스는 객체지향 프로그래밍을 이해하는 데 중요한 개념이므로 잘 숙지해두시면 좋습니다.