js 상용 상속-조합 식 상속

조합 계승 은 때때로 위조 경전 계승 이 라 고도 부른다.원형 체인 과 차용 구조 함수 기술 을 하나 로 조합 하여 양자 의 장점 을 발휘 하 는 계승 모델 을 말한다.그 배후 의 사고방식 은 원형 체인 을 이용 하여 원형 속성 과 방법 에 대한 계승 을 실현 하고 구조 함 수 를 빌려 실례 속성 에 대한 계승 을 실현 하 는 것 이다.이렇게 하면 원형 에서 정의 하 는 방법 을 통 해 함수 재 활용 을 실현 할 수 있 을 뿐만 아니 라 모든 인 스 턴 스 가 자신의 속성 을 가지 고 있 음 을 보증 할 수 있다.

 function SuperType(name){
  this.name=name;
  this.colors=["red","blue","green"];
 }
 SuperType.prototype.sayName=function(){
  console.log(this.name);
 }
 function SubType(name,age){
  SuperType.call(this,name);
  this.age=age;
 }
 SubType.prototype=new SuperType();
 SubType.prototype.constructor=SubType;
 SubType.prototype.sayAge=function(){
  console.log(this.age);
 }
 var instance1=new SubType("zxf",24);
 instance1.colors.push("black");
 console.log(instance1.colors);//["red","blue","green","black"]
 instance1.sayName();//"zxf"
 instance1.sayAge();//24
 var instance2=new SubType("jay",36);
 console.log(instance2.colors);//["red","blue","green"]
 instance2.sayName();//"jay"
 instance2.sayAge();//36
이 예 에서 슈퍼 type 구조 함 수 는 두 개의 속성,name 과 colors 를 정의 합 니 다.슈퍼 type 의 원형 은 하나의 방법 sayname()을 정의 합 니 다.subtype 구조 함수 가 슈퍼 type 을 호출 할 때 name 인자 가 들 어 왔 고 이 어 자신의 속성 age 를 정의 했다.그리고 슈퍼 type 의 실례 값 을 subtype 의 원형 에 부여 한 다음 에 이 새로운 원형 에 방법 sayage()를 정의 했다.이렇게 하면 두 개의 서로 다른 subtype 인 스 턴 스 가 속성 을 가 질 수 있 습 니 다.colors 속성 을 포함 하고 같은 방법 을 사용 할 수 있 습 니 다.
조합 식 계승 단점 은 슈퍼 type 구조 함 수 를 두 번 호출 했 습 니 다.한 번 은 subtype 의 원형 을 할당 할 때 한 번 은 인 스 턴 스 화 서브 클래스 에서 콜 호출 되 었 습 니 다.이번 호출 은 원형 중의 두 개의 동명 속성 을 차단 합 니 다.
참고서:Javascript 고급 프로 그래 밍(제3 판);
이상 은 본 고의 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.또한 저 희 를 많이 지지 해 주시 기 바 랍 니 다!

좋은 웹페이지 즐겨찾기