개발/Java Script
Prototype
ksy0314
2020. 9. 9. 16:06
자바스크립트는 class가 없음에도 불구하고 객체 지향 프로그래밍 언어이다.
그 이유는 prototype을 사용하여 상속을 구현하기 때문이다.
자바스크립트에서 함수는 객체의 포함된다.
이때문에 함수는 자신의 property와 method를 가질수 있는것이다.
이처럼 모든 함수는 생성될때 자신 객체와 또 다른 무언가를 만들어내는데
그것이 바로 prototype이다.
prototype은 객체로 constructor와 __proto__를 가지고 있다.
또한 객체라는 특성을 이용해 새로운 property와 method를 추가할 수 있다.
위를 이해했다면 반 이상 온것이다.
사실 __proto__ 속성은 모든 객체가 가지는 속성이다.
__proto__는 자신의 부모 함수의 prototype을 가리키는데
이를통해 부모의 속성과 메소드를 가져올 수 있는것이다.
또한 자신으로 부터 가장 가까운 곳에 있는 속성과 메소드를 가져오기 때문에
자신이 상속받은 속성을 수정한다면 수정한 값을 가지게 된다.