[Javascript]Prototype

phoenix·2021년 10월 11일
0

자바스크립트 프로토타입은 유전자와 같은것이다

부모가 자식에게 상속을 시켜준다

부모가 자식 object에게 데이터를 상속 시켜 줄 수 있다

기계.prototype.name = 'kim'

console.log(nunu.name);

이렇게하면

누누가 kim이라는 속성을 가지고 있다고 나온다

우리는 분명 nunu에게 name이라는 속성을 주지 않았는데도 누누가 가지고 있다고 나온다

어떻게 된거냐면

object에서 자료를 가져올때는 먼저 nunu가 직접 그 object 자료를 가지고 있는지 확인하고

가지고 있다면 출력을 한다

만약 없다면 부모유전자까지 거슬러 올라가서 확인한다 (지금이 이 경우이다 기계.prototype.name = 'kim')

또 다른 예시를 들자면

let array = [3,4,2,1]
console.log(array.sort())

이렇게하면 저 배열안에 있는 값들이 정렬되서 나온다

하지만 생각을 해보자면 우리는 sort()라는 함수를 추가 해준적이 없고

.length 등등 다양한 함수들도 추가 하지 않았다.

이러한 다양한 기능의 함수들을 사용할수있는 이유는

Array라는 부모 유전자에 prototype에 여러가지 기능의 함수들이 기록이 되어 있기 때문이다

let array = [3,4,2,1]; //이것과
let array = new Array(3,4,2,1); //이것은 같은 의미이다
Array.prototype

MDN Web Docs에 가봐도

Array.prototye.sort()

이렇게 prototype이 써있다 이제 저 prototype이 무엇을 의미 하는지 좀 더 이해가 간거 같다

모든 배열 자료에서 쓸 수 있는 함수 생성

Array.prototype.함수명 = function(){}
//이렇게 배열에서 사용할 수 있는 함수를 내가 직접 커스텀으로 만들어 줄 수 있다!
profile
phoenix

0개의 댓글