héritage de classe javascript
Auteur:Eve Cole
Date de mise à jour:2009-06-11 16:23:07
1. La première façon est de prétendre être un objet. (En utilisant le fait que chaque nom de méthode dans js est un objet Function) Fonction de code Java Parent(nom d'utilisateur){
this.username = nom d'utilisateur ;
this.say = fonction(){
alert(this.username);
}
}
function Enfant (nom d'utilisateur, mot de passe) {
this.temp = Parent;//temp pointe vers l'endroit où pointe Parent. Chaque nom de méthode dans js est un objet Function, pointant vers une méthode.
this.temp(username);//Le contenu de la méthode d'initialisation delete this.temp;//temp n'est plus utile. Vous pouvez le supprimer directement. Cela ne peut pas être perdu //Parent(username);//Écrire de cette façon peut sembler correct à première vue, mais c'est en fait faux. Étant donné que seuls les objets issus de new l'ont, il n'y a aucune valeur lors de son appel dans Parent this.password = password;
this.bonjour = fonction(){
alert(ce.mot de passe);
}
}
var parent = new Parent("zhangsan");
parent.say();//zhangsan
var enfant = nouveau Enfant("lisi","123456");
enfant.say();//lisi
enfant.bonjour();//123456
//La première façon consiste à prétendre être un objet. (En utilisant le fait que chaque nom de méthode dans js est un objet Function)
fonction Parent (nom d'utilisateur) {
this.username = nom d'utilisateur ;
this.say = fonction(){
alert(this.username);
}
}
function Enfant (nom d'utilisateur, mot de passe) {
this.temp = Parent;//temp pointe vers l'endroit où pointe Parent. Chaque nom de méthode dans js est un objet Function, pointant vers une méthode.
this.temp(username);//Le contenu de la méthode d'initialisation delete this.temp;//temp n'est plus utile. Vous pouvez le supprimer directement. Cela ne peut pas être perdu //Parent(username);//Écrire de cette façon peut sembler correct à première vue, mais c'est en fait faux. Étant donné que seuls les objets issus de new l'ont, il n'y a aucune valeur lors de son appel dans Parent this.password = password;
this.bonjour = fonction(){
alert(ce.mot de passe);
}
}
var parent = new Parent("zhangsan");
parent.say();//zhangsan
var enfant = nouveau Enfant("lisi","123456");
enfant.say();//lisi
enfant.bonjour();//123456
2. La deuxième méthode : méthode de fonction call() La fonction call() est une fonction de l'objet Function L'utilisation spécifique est la suivante Code Java // La fonction call() est une fonction de l'objet Function // Le spécifique. l'utilisation est telle que function test(str){
alert(this.username + "," + str);
}
var o = nouvel objet ();
o.nom d'utilisateur = "zhangsan" ;
test.call(o,"123456");//zhangsan,123456. Parce que chaque objet Function a une méthode call() et que le nom de la fonction est un objet Function. Le premier paramètre de la fonction call() est la fonction de test. Ceci dans.
//La fonction call() est une fonction de l'objet Function //L'utilisation spécifique est telle que function test(str){
alert(this.username + "," + str);
}
var o = nouvel objet ();
o.nom d'utilisateur = "zhangsan" ;
test.call(o,"123456");//zhangsan,123456. Parce que chaque objet Function a une méthode call() et que le nom de la fonction est un objet Function. Le premier paramètre de la fonction call() est la fonction de test. Ceci dans.
Fonction de code Java Parent(nom d'utilisateur){
this.username = nom d'utilisateur ;
this.say = fonction(){
alert(this.username);
}
}
function Enfant (nom d'utilisateur, mot de passe) {
Parent.call (ceci, nom d'utilisateur);
this.password = mot de passe ;
this.bonjour = fonction(){
alert(ce.mot de passe);
}
}
var parent = new Parent("zhangsan");
parent.say();//zhangsan
var enfant = nouveau Enfant("lisi","123456");
enfant.say();//lisi
enfant.bonjour();//123456
fonction Parent (nom d'utilisateur) {
this.username = nom d'utilisateur ;
this.say = fonction(){
alert(this.username);
}
}
function Enfant (nom d'utilisateur, mot de passe) {
Parent.call (ceci, nom d'utilisateur);
this.password = mot de passe ;
this.bonjour = fonction(){
alert(ce.mot de passe);
}
}
var parent = new Parent("zhangsan");
parent.say();//zhangsan
var enfant = nouveau Enfant("lisi","123456");
enfant.say();//lisi
enfant.bonjour();//123456
3. La troisième méthode d'implémentation : la méthode de fonction apply() apply() et call() sont identiques, sauf que les paramètres sont passés différemment. Les paramètres de apply sont des codes Java de tableau // La troisième méthode d'implémentation : la fonction apply(). La méthode, apply() et call() sont identiques, sauf que les paramètres sont passés différemment. Les paramètres de apply sont des tableaux // donc l'héritage peut implémenter la fonction Parent(username){ comme ceci.
this.username = nom d'utilisateur ;
this.say = fonction(){
alert(this.username);
}
}
function Enfant (nom d'utilisateur, mot de passe) {
Parent.apply(this,new Array(username));
this.password = mot de passe ;
this.bonjour = fonction(){
alert(ce.mot de passe);
}
}
var parent = new Parent("zhangsan");
parent.say();//zhangsan
var enfant = nouveau Enfant("lisi","123456");
enfant.say();//lisi
enfant.bonjour();//123456