Laksanakan polimorfisme dalam js menggunakan kaedah yang serupa dengan kemahiran inheritance_javascript

WBOY
Lepaskan: 2016-05-16 16:39:09
asal
1112 orang telah melayarinya

Polymorphism boleh dilaksanakan dengan cara yang serupa dengan pewarisan. Pertama tentukan kelas abstrak, yang memanggil beberapa kaedah maya tidak ditakrifkan dalam kelas abstrak, tetapi dilaksanakan melalui kelas pelaksanaan khusus.

Seperti dalam contoh berikut:

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"
Salin selepas log masuk

Pertama, asas kelas asas abstrak ditakrifkan, dan kaedah oninit dipanggil dalam kaedah permulaan kelas asas, tetapi pelaksanaan atau pengisytiharan kaedah oninit tidak digunakan dalam kelas asas. Kelas SubClassA dan SubClassB mewarisi daripada kelas asas, dan melaksanakan kaedah oninit dengan cara yang berbeza.

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan