javascript 계승의 원형

이전 절:javascript 계승된 데이터 귀속 가설에 대해 다음과 같은 실험을 한다.
prototype 모드
먼저 코드를 실행합니다.
 
function Animal(){
    this.species = " ";
  }

function Cat(name,color){
    this.name = name;
    this.color = color;
  }

Cat.prototype = new Animal();

alert("the first cat's prototype is : "+Cat.prototype.constructor);
//the first cat's prototype is : function Animal(){
//    this.species = " ";
//  }

Cat.prototype.constructor = Cat;

alert("the second cat's prototype is : "+Cat.prototype.constructor);
//the second cat's prototype is : function Cat(name,color){
//    this.name = name;
//    this.color = color;
//  }

 
Cat.prototype = new Animal();우리는 Cat의 프로토타입 대상을 애니멀의 실례를 가리킨다.
Cat.prototype.constructor = Cat;프로토타입 대상의 원래 값을 완전히 삭제하고 새 값을 부여하는 것과 같습니다.
 
그런데 이게 무슨 뜻이죠? 
원래, 모든 프로토타입 대상은constructor 속성을 가지고 있으며, 그 구조 함수를 가리킨다.
 
"Cat.prototype = new Animal ()"이 없으면이 줄은 Cat.prototype.constructor는 Cat을 가리킨다.이 줄을 추가한 후, Cat.prototype.constructor는 애니멀을 가리킨다.
 
더 중요한 것은 모든 실례에도constructor 속성이 있습니다. 기본적으로prototype 대상의constructor 속성을 호출합니다.

좋은 웹페이지 즐겨찾기