자바스크립트의 모든 객체는 자신의 부모 역할을 하는 객체와 연결되어 있다. 객체는 부모 객체의 프로퍼티를 마치 자신의 것처럼 쓸 수 있는 특징이 있다. 이러한 부모 객체를
프로토타입
이라고 부른다.
var fruits = {
name:'apple',
color:'red'
}
console.log(fruits.toString());
console.dir(fruits);
fruits 객체에는 toString() 메서드가 없어 console.log(fruits.toString())의 결과는 에러가 발생해야하지만, fruits 객체의 프로토타입에 toString() 메서드가 정의되어 있기 때문에 에러가 나지 않는 것이다.
fruits 객체에는 name, color뿐 아니라 __proto__
라는 프로퍼티도 있는 걸 확인 할 수 있다. __proto__
프로퍼티가 가리키는 객체는 Object.prototype
이며, 모든 객체에서 호출 가능한 기본 내장 메서드가 포함되어 있다. 그래서 fruits 객체가 Object.prototype
프로토타입에 있는 메서드를 상속받아 사용할 수 있는 것이다.
💡 자바스크립트의 모든 객체는 자신의 부모 역할을 하는
프로토타입
객체와 연결되어 있고, 그 객체에 포함된 다양한 메서드를 상속받아 사용할 수 있다.