Vererbung von Javascript-Klassen
Autor:Eve Cole
Aktualisierungszeit:2009-06-11 16:23:07
1. Die erste Möglichkeit besteht darin, vorzugeben, ein Objekt zu sein (wobei jeder Methodenname in js ein Funktionsobjekt ist). Java-Code function Parent(username){
this.username = Benutzername;
this.say = function(){
alarm(this.username);
}
}
Funktion Child(Benutzername,Passwort){
this.temp = Parent;//temp zeigt auf die Stelle, an der Parent zeigt. Jeder Methodenname in js ist ein Funktionsobjekt, das auf eine Methode verweist.
this.temp(username);//Der Inhalt in der Initialisierungsmethode delete this.temp;//temp ist nicht mehr nützlich. Sie können es direkt löschen. //Parent(username);/Diese Schreibweise mag auf den ersten Blick korrekt erscheinen, ist aber tatsächlich falsch. Da dies nur Objekte haben, die aus „new“ stammen, gibt es keinen Wert, wenn dies in „Parent this.password = password;“ aufgerufen wird.
this.hello = function(){
alarm(this.password);
}
}
var parent = new Parent("zhangsan");
parent.say();//zhangsan
var child = neues Kind("lisi","123456");
child.say();//lisi
child.hello();//123456
//Die erste Möglichkeit besteht darin, vorzugeben, ein Objekt zu sein (wobei jeder Methodenname in js ein Funktionsobjekt ist).
Funktion Parent(Benutzername){
this.username = Benutzername;
this.say = function(){
alarm(this.username);
}
}
Funktion Child(Benutzername,Passwort){
this.temp = Parent;//temp zeigt auf die Stelle, an der Parent zeigt. Jeder Methodenname in js ist ein Funktionsobjekt, das auf eine Methode verweist.
this.temp(username);//Der Inhalt in der Initialisierungsmethode delete this.temp;//temp ist nicht mehr nützlich. Sie können es direkt löschen. //Parent(username);/Diese Schreibweise mag auf den ersten Blick korrekt erscheinen, ist aber tatsächlich falsch. Da dies nur Objekte haben, die aus „new“ stammen, gibt es keinen Wert, wenn dies in „Parent this.password = password;“ aufgerufen wird.
this.hello = function(){
alarm(this.password);
}
}
var parent = new Parent("zhangsan");
parent.say();//zhangsan
var child = neues Kind("lisi","123456");
child.say();//lisi
child.hello();//123456
2. Die zweite Methode: call()-Funktionsmethode Die call()-Funktion ist eine Funktion des Function-Objekts. Die spezifische Verwendung ist wie folgt: Java-Code // Die call()-Funktion ist eine Funktion des Function-Objekts // Das Spezifische Die Verwendung ist beispielsweise function test(str){
Alert(this.username + "," + str);
}
var o = neues Objekt();
o.username = "zhangsan";
test.call(o,"123456");//zhangsan,123456 Da jedes Funktionsobjekt eine call()-Methode hat und der Funktionsname ein Funktionsobjekt ist, ist der erste Parameter der call()-Funktion die Testfunktion Das hier.
//Die Funktion call() ist eine Funktion des Function-Objekts //Die spezifische Verwendung ist beispielsweise function test(str){
Alert(this.username + "," + str);
}
var o = neues Objekt();
o.username = "zhangsan";
test.call(o,"123456");//zhangsan,123456 Da jedes Funktionsobjekt eine call()-Methode hat und der Funktionsname ein Funktionsobjekt ist, ist der erste Parameter der call()-Funktion die Testfunktion Das hier.
Java-Codefunktion Parent(username){
this.username = Benutzername;
this.say = function(){
alarm(this.username);
}
}
Funktion Child(Benutzername,Passwort){
Parent.call(this,username);
this.password = Passwort;
this.hello = function(){
alarm(this.password);
}
}
var parent = new Parent("zhangsan");
parent.say();//zhangsan
var child = neues Kind("lisi","123456");
child.say();//lisi
child.hello();//123456
Funktion Parent(Benutzername){
this.username = Benutzername;
this.say = function(){
alarm(this.username);
}
}
Funktion Child(Benutzername,Passwort){
Parent.call(this,username);
this.password = Passwort;
this.hello = function(){
alarm(this.password);
}
}
var parent = new Parent("zhangsan");
parent.say();//zhangsan
var child = neues Kind("lisi","123456");
child.say();//lisi
child.hello();//123456
3. Die dritte Implementierungsmethode: apply()-Funktionsmethode apply() und call() sind identisch, außer dass die Parameter unterschiedlich übergeben werden. Die Parameter von apply sind Array-Java-Codes // Die dritte Implementierungsmethode: apply()-Funktion Methode, apply() und call() sind gleich, außer dass die Parameter unterschiedlich übergeben werden. Die Parameter von apply sind Arrays //, sodass die Vererbung die Funktion Parent(username){ wie folgt implementieren kann
this.username = Benutzername;
this.say = function(){
alarm(this.username);
}
}
Funktion Child(Benutzername,Passwort){
Parent.apply(this,new Array(username));
this.password = Passwort;
this.hello = function(){
alarm(this.password);
}
}
var parent = new Parent("zhangsan");
parent.say();//zhangsan
var child = neues Kind("lisi","123456");
child.say();//lisi
child.hello();//123456