개발/JavaScript

JavaScript] 자바스크립트 뿌시기 (프로토타입)

펭귀니 :) 2021. 1. 5. 21:07

🎉 프로토타입


프로토타입 객체

자바스크립트의 모든 객체는 자신의 부모 역할을 하는 객체와 연결되어 있다.
( ≒ 자바의 상속 개념 )
이런 부모 객체를 프로토타입 객체 (프로토타입)라고 부른다.  

 
아래 코드에서 person에 toString() 메소드가 없지만, 실행되는 이유는
person의 프로토타입에 toString() 메소드가 정의되어 있기 때문이다.

var person = {
    name: '티스토리',
    age: '21'
}

console.log(person.toString()); // print >> [object Object]
console.dir(person); // print >> { name: '티스토리', age: 21 }

ECMAScript 명세서에는 자바스크립트의 모든 객체는 자신의 프로토타입을 가르키는 [[Prototype]]이라는 숨겨진 프로퍼티를 가진다고 설명한다.

Object.prototype

위와 같이 객체가 리터럴 방식으로 생성된다면, Object.prototype 객체가 프로토타입 객체가 된다.
Object.prototype에는 toString(), valueOf() 등과 같은 자바스크립트 기본 내장 메서드가 포함되어 있다.
객체는 Object.prototype 객체에 포함된 다양한 메서드를 자신의 프로퍼티인 것처럼 상속받아 사용할 수 있다.

📖출처

송형주, 고현준 지음, 『인사이드 자바스크립트』, 한빛미디어(2014)