我想在Javascript中創建兩個功能類:動物和斑馬。客戶端腳本實例斑馬,然後斑馬應該能夠看到從動物調用函數:如何用Javascript(jQuery)調用「基類」函數?
斑馬:動物
因此,我嘗試以下,在這裏我使用jQuery $.extend()
,使動物基地類斑馬:
Animal = function() {
function hi_animal() {
console.log('But I am also an animal');
}
return {
hi_animal: hi_animal
}
}
Zebra = function() {
$.extend(this, Animal);
function hi_zebra() {
console.log('I am a zebra!');
hi_animal();
}
return {
hi_zebra: hi_zebra
}
}
$(document).ready(function() {
var my_zebra = new Zebra();
my_zebra.hi_zebra();
});
瀏覽器日誌應顯示兩行:
I am a zebra
But I am also an animal
不過,我只看到:
I am a zebra!
Uncaught ReferenceError: hi_animal is not defined
這是fiddle。
我錯過了什麼?
很好的選擇。我把我的詳細信息留下了,所以希望OP更清楚一點。 –
爲了確保我明白了,在這種情況下,它更輕,但是添加到Animal.prototype中的功能越多,它變得越難處理?因爲你必須爲每個人重複'Zebra.prototype.hi_animal = Animal.prototype.hi_animal;'? –
@ Cristol.GdM的確,但是你創建了應用它們的函數。例如。我可能有一個叫makeControl的函數,makeWindow,makeDraggable,你甚至可以有一個多重繼承,makeDraggableWindow = makeWindow + makeDraggable。 makeDraggableControl = makeControl + makeDraggable。等等。 – Keith