728x90
코딩애플식 정의 : prototype은 유전자이다.
function기계(){
this.q = "strike"
//여기에 무언갈 쓰면 자식이 직접 가지게 된다.
}
기계.prototype.name = 'kim' //여기에 쓰면 부모가 가지게 된다.
var nunu = new 기계();
nunu.name //kim이 나옴
여기서 부모 유전자에 있는 것을 자식이 사용 가능한 이유는?
object에서 자료 뽑을 때 일어나는 일
- 직접 자료를 가지고 있으면 그것을 출력한다.
- 없으면 부모유전자까지 찾아본다.
- 없으면 부모의 부모 유전자까지 찾아본다.
이것을 prototype chain ~ 이라고 칭한다.
array.sort() 나 array.length() 처럼 array에 붙일 수 있는 이유가 무엇일까?
기본적으로 array을 우리가 만들때,
var 어레이 = []; 이런식으로 만들 수 있지만 이것은 사람이 편하게 작성하는 방식이고,
사실 컴퓨터의 방식은 var 어레이 = new Array(); 이다.
Array라는 기계에서 자식을 뽑아 내는 것이다.
마찬가지로 Object도 예를 들 수 있다 new Object...
어레이.sort를 사용할 수있는 이유는 부모유전자에 기록이 되어있으니 사용이 가능한것이다.
Array라는 부모 유전자에 기록이 되어있는 것.
sort를 구글에 검색해보면 MDN 사이트에서 Array.prototype.sort() 라고 제목이 되어있는것을 확인 할수있다.
모든 array 자료에서 쓸수 있는 함수를 추가하고 싶다! 라고하면
array.prototype.함수 = function(){}
이런식으로 작성해 사용할 수있다.
출처: 코딩애플 https://www.youtube.com/watch?v=wUgmzvExL_E
728x90
'STUDY > JavaScript' 카테고리의 다른 글
[JS] 브라우저 객체 모델 (0) | 2023.01.16 |
---|---|
[JS] 자바스크립트 내장 객체 (0) | 2023.01.16 |
[JS] padStart() · Date.parse() (0) | 2023.01.09 |
[JS] arguments 객체 (0) | 2023.01.05 |
[JS] spread operator - 배열의 복사 (0) | 2023.01.05 |