Heim > Web-Frontend > js-Tutorial > Hauptteil

Implementieren Sie Polymorphismus in js mit Methoden, die den Fähigkeiten von inheritance_javascript ähneln

WBOY
Freigeben: 2016-05-16 16:39:09
Original
1111 Leute haben es durchsucht

Polymorphismus kann auf ähnliche Weise wie Vererbung implementiert werden. Definieren Sie zunächst eine abstrakte Klasse, die einige virtuelle Methoden aufruft. Virtuelle Methoden werden nicht in der abstrakten Klasse definiert, sondern über ihre spezifische Implementierungsklasse implementiert.

Wie im folgenden Beispiel:

Object.extend=function(destination,source){ 
for(property in source){ 
destination[property]=source[property]; 
} 
return destination; 
} 
//定义一个抽象基类base,无构造函数 
function base(){}; 

base.prototype={ 
initialize:function(){ 
this.oninit();//调用了一个虚方法 
} 
} 
function SubClassA(){ 
//构造函数 
} 
SubClassA.prototype=Object.extend({ 
propInSubClassA:"propInSubClassA", 
oninit:function(){ 
alert(this.propInSubClassA); 
} 
},base.prototype); 

function SubClassB(){ 
//构造函数 
} 
SubClassB.prototype=Object.extend({ 
propInSubClassB:"propInSubClassB", 
oninit:function(){ 
alert(this.propInSubClassB); 
} 
},base.prototype); 

var objA=new SubClassA(); 
objA.initialize();//输出"propInSubClassA" 

var objB=new SubClassB(); 
objB.initialize();//输出"propInSubClassB"
Nach dem Login kopieren

Zuerst wird eine abstrakte Basisklassenbasis definiert und die Oninit-Methode in der Initialisierungsmethode der Basisklasse aufgerufen, die Implementierung oder Deklaration der Oninit-Methode wird jedoch nicht in der Basisklasse verwendet. Die Klassen SubClassA und SubClassB erben von der Basisklasse und implementieren die oninit-Methode auf unterschiedliche Weise.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage