[Javascript] Prototype이란?

youngseo·2022년 2월 15일
0

Javascript

목록 보기
14/46
post-thumbnail

Prototype

자바스크립트는 프로토타입 기반의 언어입니다. 클래스 기반의 언어의 경우 '상속'을 사용하지만 프로토타입 기반 언어에서는 어떤 객체를 원형(prototype)으로 삼고 이를 복제(참조)함으로써 상속과 비슷한 효과를 냅니다.

즉, 모든 객체들이 메소드와 속성들을 상속 받기 위한 템플릿으로써 프로토타입 객체를 가집니다.

const str='문자열';
cosnt num = 1;
const boolean = false;
const obj = {};
const array = [];
const func = function(){}


console.dir(str.__proto__)  //String객체
console.dir(num.__proto__)  //Number객체
console.dir(boolean.__proto__) //Boolean 객체
console.dir(obj.__proto__)  // Object객체
console.dir(array.__proto__) //Array객체
console.dir(func.__proto__) // Function 객체

각각 자바스크립트의 타입에 맞는 변수를 생성한 후 해당값의 __proto__를 출력해보면, 내가 만들지 않은 래퍼객체를 확인할 수 있습니다.

이렇게 프로토타입 기반 언어는 객체 원형인 프로토타입을 이용해여 새로운 객체를 만들어냅니다. 즉, 자바스크리트로 무엇을 만들던 자바스크립트가 프로토타입의 기반의 언어이기 때문에 새로운 객체를 만들어냅니다.

또한 이렇게 생성된 객체 역시 또 다른 객체의 원형이 될 수 있습니다.프로토타입은 객체를 확장하고 객체 지향적인 프로그래밍을 할 수 있도록 해줍니다.


참고자료

  • MDN
  • 장현석 강사님의 강의
  • 코어자바스크립트

0개의 댓글