js 대상 에 대한 계승 총화

2244 단어
얼마 전에 js 가 대상 을 대상 으로 하 는 방법, 클래스 를 어떻게 만 드 는 지, 그리고 클래스 를 어떻게 사용 하여 대상 을 만 드 는 지 썼 습 니 다. 오늘 은 js 가 대상 을 대상 으로 하 는 계승 을 정리 하 겠 습 니 다.
    js 중의 계승 은 두 가지 구조 함수 계승 과 비 구조 함수 계승 으로 나 뉜 다.
    js 의 계승 예
     
var animal = function(){
   this.species = '  ';
};


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

var xiaoli = new dog('  ','  ');
//dog    animal ?
alert(xiaoli.species);        '  ' ?

    구조 함수 계승 에는 또 많은 방법 이 있다.
    1. 콜 이나 apply 를 사용 하여 부모 요소 의 구조 함 수 를 하위 요소 에 연결 합 니 다.
   
var dog = function(name,color){
   animal.apply(this,agrments);
   this.name = name;
   this.color = color;
};
var huahua = new dog('huahua','  ');
alert(huahua.species)  //'  '
     2. prototype 모드 (원형 모드)
dog.prototype = new animal();
dog.prototype.constructor = dog;
// dog prototype  animal

var xiaoyu = new dog('  ','  ');

alert(xiaoyu.species); //'  '


         dog,        animal ,         animal
dog.prototype.constructor = dog;       
alert(dog.prototype.constructor)  //animal
     3. 프로 토 타 입 을 직접 계승
var animal = function(){};
animal.prototype.species = '  ';

dog.prototype = animal.prototype;

dog.prototype.constructor = dog;
var dahua = new dog('  ','  ');

alert(dahua.species); //'  '


//    

alert(animal.prototype,constructor == dog) //   true
     4. 빈 대상 상속
var b = function(){};

b.prototype = animal.prototype;

dog.prototype = new b();

dog.prototype.constructor = dog;

alert(animal.prototype.constructor == animal) //   true


//  

var extend = function(parent,child){
    var F = function(){};

    F.prototype = parent.prototype;

    child.prototype = new F();

    child.prototype.constructor = child;

};

//               ;
     5. 속성 복사
        
var animal = function(){};

animal.prototype.species = '  ';

var extend = function(Parent,Child){
    var p = Parent.prototype;
    
    var c = Child.prototype;

    for(var prop in p)
    {
       c[prop] = p[prop];

    }

};

좋은 웹페이지 즐겨찾기