[JavaScript 프로 그래 밍] 원형, 원형 체인

4686 단어 JavaScript
원형
스텔스 원형
대상 은 속성 __proto__ 을 가지 고 암시 적 원형 이 라 고 할 수 있 으 며 한 대상 의 암시 적 원형 은 이 대상 을 구성 하 는 구조 함수 의 원형 을 가리 키 는데 이것 은 인 스 턴 스 가 구조 함수 원형 에서 정의 하 는 속성 과 방법 에 접근 할 수 있 도록 보장 한다.Object.getPrototypeOf()
원형 속성
모든 대상 은 그 내부 에서 하나의 속성 인 원형 속성 prototype 을 초기 화 합 니 다. 이 속성 은 하나의 지침 으로 대상 을 가리 키 는데 이 대상 의 용 도 는 모든 인 스 턴 스 가 공유 하 는 속성 과 방법 을 포함 하 는 것 입 니 다. (우 리 는 이 대상 을 원형 대상 이 라 고 부 릅 니 다)
constructor
원형 대상 에 도 하나의 속성 이 있 는데 constructor 이 속성 은 지침 을 포함 하고 원래 의 구조 함 수 를 가리킨다.
관계.
instance.constructor.prototype = instance.__proto__

판 가름
방법.
묘사 하 다.
hasOwnProperty()
자신 속성 찾기
instanceof
대상 (인 스 턴 스) 과 구조 함수 가 원형 체인 에 관계 가 있 는 지 여부
원형 체인
정의.
  • 우리 가 대상 의 속성 을 방문 할 때 자신 이 xxx 속성 이 있 으 면 방문 합 니 다 (자체 속성).
  • 없 으 면 __proto__ 속성 을 통 해 원형 체인 의 이전 원형 대상 을 찾 아 xxx 속성 이 있 는 지 확인 합 니 다.
  • xxx 속성 을 찾 거나 원형 체인 상단 Object.prototype 대상 을 찾 을 때 까지 재 귀적 으로 찾 습 니 다.
  • 전체 원형 체인 에 없 으 면 undefind 로 돌아 갑 니 다.
  • 우 리 는 이런 원형 을 통 해 층 층 이 연 결 된 관 계 를 원형 체인 이 라 고 부른다.

  • 아 날로 그 원형 체인
    var Shape = {
        getArea:function() {
            return "area: "+this.area;
        }
    };
    var Retangle = {
        getEdge:function() {
            return "edge: "+this.edge;
        }
    };
    var retangleIns = {
        area : 20,
        edge : 4
    };
    
    //      , 3           :
    // Shape 
    retangleIns.__proto__ = Retangle;
    Retangle.__proto__ = Shape;
    
    //       ,getArea   getEdge       
    console.log("      ,retangleIns.getArea() = " + retangleIns.getArea());
    console.log("      ,retangleIns.getEdge() = " + retangleIns.getEdge());
    

    좋은 웹페이지 즐겨찾기