-
프로토타입 기반 언어
JavaScript는 흔히 프로토타입 기반 언어(prototype-based language)라 불린다 모든 객체들이 메소드와 속성들을 상속 받기 위한 템플릿으로써 프로토타입 객체(prototype object)를 가진다.
프로토 타입 function 기계(){ this.q = "strike" this.w = "snowball" } 기계.prototype.name ="kim" var nunu = new 기계() }
prototype - 기계라는 객체에 비밀 공간이 생김
- prototype = 유전자
- nunu라는 변수에 name을 부여한 적은 없었지만 기계.prototype 이라는 부모 유전자에 기억되어 있어 그것을 가져다 쓸 수 있다.
const car ={ wheel: 4, drive(){ console.log("drive...") }, }; const bmw ={ color: "blue", }; const benz ={ color: "red", }; const audi ={ color: "green", }; bmw.__proto__ = car; benz.__proto__ = car; audi.__proto__ = car;
__proto__ - bmw 를 출력 해보면 color 만 있어야 하지만 bmw.__proto__ = car; 를 하여 car는 bmw의 상위 객체가 된다.
- 따라서 bmw를 검색하면 color: "blue" 만나오지만 bmw.wheels를 검색하면 현재 bmw 의 요소를 검색하고 없다면 상위 객체로 이동하여 검색을 한다 여기서는 car 가 bmw의 상위 객체가 있어 4가 출력된다.
- 이렇게 자기 원본에 없어 상위 객체로 이동하여 찾는것을 프로토 타입 체인 이라고 한다.
- 프로토 타입 체인은 null을 프로토타입으로 가지는 오브젝트에서 끝난다.
'프론트 공부' 카테고리의 다른 글
AJAX (0) 2023.03.28 비동기 (0) 2023.03.21 객체 지향 프로그래밍 (0) 2023.03.15 클래스와 인스턴스 (0) 2023.03.15 모던 자바스크립트 Deep Dive 12~14장 공부 (0) 2023.03.14