Maison  >  Article  >  interface Web  >  Quelles sont les méthodes d'héritage en javascript

Quelles sont les méthodes d'héritage en javascript

醉折花枝作酒筹
醉折花枝作酒筹original
2021-04-08 18:30:232044parcourir

Les méthodes d'héritage Javascript incluent : 1. En utilisant la méthode call(), vous pouvez écrire des méthodes qui peuvent être utilisées sur différents objets ; 2. La méthode apply(), la syntaxe « apply (objet utilisé comme ceci, à passer au Tableau de paramètres de fonction)".

Quelles sont les méthodes d'héritage en javascript

L'environnement d'exploitation de ce tutoriel : système Windows 7, JavaScript version 1.8.5, ordinateur Dell G3.

1. Méthode call()

La méthode call() est la méthode la plus similaire à la méthode classique d'usurpation d'identité d'objet. Son premier paramètre est utilisé comme objet de ceci. D'autres paramètres sont transmis directement à la fonction elle-même

function Huster(name,idNum,college)
    {        this.name = name;        
        this.idNum = idNum;        
        this.college = college;        
        this.course = new Array();    
        
        this.addCourse = function(course)//这个方法不能用prototype来定义,如果用的话,子类无法继承该方法
        {                   //用原型prototype定义的方法可以用原型链来继承,call()方法和apply()方法都无法继承            this.course.push(course);
            console.log(this.course);
        };    
            
    }    
    
    function Autoer(name,idNum)
    {        
    this.college = ‘自动化‘;
        Huster.call(this,name,idNum,this.college);//Autoer使用call()方法来继承 Huster
     if (typeof Autoer._initialized == "undefined") 
     { 
      Autoer.prototype.sayHobby = function() //自己的方法可以用原型链prototype定义
      { 
        alert(this.college+‘人喜欢撸代码!‘);     
      }; 
      Autoer._initialized = true; 
     } 
  } 
   
  var autoer1 = new Autoer(‘偶人儿‘,‘U123456789‘); //声明一个实例autoer1
  console.log(autoer1.name,autoer1.idNum,autoer1.college,autoer1.course); 
  autoer1.addCourse(‘logistics‘);//调用Huster的方法
  autoer1.sayHobby();    //调用自身的方法

2. Méthode apply()

La méthode apply() est presque la même que la méthode call(), la seule différence est apply La méthode () n'a que deux paramètres, le premier est utilisé comme objet et le second est le tableau de paramètres à transmettre à la fonction. C'est-à-dire que la méthode apply() met plusieurs paramètres de la méthode call() dans un tableau et les transmet à la classe parent

function Huster(name,idNum,college){    
this.name = name;            
this.idNum = idNum;    
this.college = college;    
this.course = new Array();            
this.addCourse = function(course)//这个方法不能用prototype来定义,如果用的话,子类无法继承该方法    
{                   //用原型prototype定义的方法可以用原型链来继承,call()方法和apply()方法都无法继承        
this.course.push(course);        
console.log(this.course);    
};                
}            
function Autoer(name,idNum)    
{        
this.college = ‘自动化‘;        
Huster.apply(this,new Array(name,idNum,this.college));//Autoer使用apply()方法来继承 Huster     
if (typeof Autoer._initialized == "undefined")      
{       
Autoer.prototype.sayHobby = function() //自己的方法可以用原型链prototype定义      
{         
alert(this.college+‘人喜欢撸代码!‘);           
};       
Autoer._initialized = true;      
}   
}      
var autoer1 = new Autoer(‘偶人儿‘,‘U123456789‘); //声明一个实例autoer1  
console.log(autoer1.name,autoer1.idNum,autoer1.college,autoer1.course);   
autoer1.addCourse(‘logistics‘);//调用Huster的方法  
autoer1.sayHobby();    //调用自身的方法

[Apprentissage recommandé : tutoriel vidéo javascript]

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn