ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 프로토 타입 언어
    프론트 공부 2023. 3. 15. 16:39

    프로토타입 기반 언어

    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
Designed by Tistory.