javascript

프로토타입 이해하기

멋쟁이개굴이 2018. 11. 26. 11:45

자바스크립트는 Java, Python, ruby 등과 같이 객체지향언어이다.

객체지향언어에서 클래스(class)는 빠질 수 없는 개념이다. 하지만 자바스크립트에는 클래스라는 개념이 없다.

대신 프로토타입(Prototype)이 존재한다. 자바스크립트가 프로토타입 기반 언어라고 불리는 이유이다.



클래스가 없기 때문에 기본적으로 상속 기능도 없다. 

그래서 보통 프로토타입 기반으로 상속을 흉내내도록 구현해서 사용한다.

참고로 최근의 ECMA6 표준에서는 Class 문법이 추가되었다. 

하지만 문법이 추가되었다는 것이지, 자바스크립트가 클래스 기반으로 바뀌었다는 것은 아니다.


WHERE ? 어디에 쓰일까?

자바스크립트에는 클래스는 없지만 함수(function)와 new를 통해 클래스를 비슷하게 흉내낼 수 있다.