난 정말 최고야 멋있어
js - prototype 에 관한 고찰 본문
-1. javascript 는 함수형 프로그래밍 언어
- 원시자료형과 심볼, object 와 function 으로 나뉜다(typeof 연산시 분류,,,,,)
0. what is prototype?
- 자바스크립트에서 상속을 구현할때 쓰이는 그런 것!!
1. prototype chaining
자바스크립트에서 메서드의 멤버를 찾을때 멤버 변수부터 시작해서 상위 프로토타입의 객체들을 뒤져가면서 요소를 찾는다 요소를 찾지 못한다면 undefined 반환
ex) arr1 = [1, 2, 3]
arr1.map((x)=>x*2) // [2, 4, 6]
이때 arr1에 메서드 map 은 정의되어있지 않지만 Array.prototype.map 에는 map() 이 정의되어 있어 그것을 통해 map 함수를 이용할 수 있씀니당!!
2. prototype vs class(oop)
- 기존의 객체지향 개념과 다르게 프로토타입 기반 언어인 자바스크립트에서는 인스턴스 또한 프로토타입이 될 수 있다!!!!!!!!!!
3. prototype vs __prototype__
- function 형 객체에는 prototype 멤버가 직접적으로 존재, object 형 객체에는 원칙상 직접적 접근 가능한 멤버가 없지만 비표준으로 대부분의 브라우저에서 __prototype__ 을 지원해 줌!