javascriptで継承を実現する3つの方法(見ればわかる)


1、原型継承
 	//     
        function Persion(name,age){ 
        	this.name = name; 
        	this.age = age; 
        }
        //           
        Persion.prototype.id = 10;
        //    
        function Boy(sex){ 
        	this.sex = sex;
        }
        //      
        Boy.prototype = new Persion('c5',27);
         var b = new Boy(); 
         alert(b.name)// c5 
         alert(b.id)//10
このプロトタイプの継承の特徴:父のテンプレートを継承するだけでなく、父のプロトタイプのオブジェクトを継承します.長所は
父類のテンプレートを継承し、父類の原型オブジェクトを継承しました.欠点は父類の事例が伝わっていることです.子類の実用化ではなく、従来の言語に合わない書き方です.
2、類継承(構造関数を借用して継承する)
        //     
        function Persion(name,age){ 
        	this.name = name; 
        	this.age = age; 
        }
        //           
        Persion.prototype.id = 10;
        //    
        function Boy(name,age,sex){ 
        	//call apply     
        	Persion.call(this,name,age);
        	this.sex = sex;
        }
         var b = new Boy('c5',27,' '); 
         alert(b.name)// c5 
         alert(b.id)//undinfind             
このプロトタイプの継承の特徴:父のテンプレートを継承し、父のプロトタイプのオブジェクトを継承しません.利点は、子のインスタンスを参照してください.欠点は、親のモデルのオブジェクトを継承しないことです.
3、混合相続(原型相続とクラス相続)
 	//     
        function Persion(name,age){ 
        	this.name = name; 
        	this.age = age; 
        }
        //           
        Persion.prototype.id = 10;
        //    
        function Boy(name,age,sex){ 
        	//call apply     
        	Persion.call(this,name,age);
        	this.sex = sex;
        }
        //                                  
	 Boy.prototype = new Persion();
         var b = new Boy('c5',27,' '); 
         alert(b.name)// c5 
         alert(b.id)//10
このプロトタイプの継承の特徴:父のテンプレートを継承するだけでなく、父のプロトタイプのオブジェクトを継承します.利点は、サブクラスのインスタンスを参照してください.欠点は、Boy.pertotype=new Persionです. 関数はまた別の例を示しています.関数内部変数はもう一度インスタンスを繰り返します.大きなプログラムの場合は性能がいいです.