我創建了一個超類Control
和一個子類LED
。 Control
的初始值設定項設置了幾個屬性,如高度,寬度,這種類型的stuf。但是,當我創建一個LED
的實例時(用正確的數據填充它應該繼承的屬性)時,記錄實例時不會顯示繼承的屬性。Prototypejs子類不會繼承超類的屬性
這裏有兩個構造函數:
var Control = Class.create({
initialize: function(control){
log('info','Beginning creation of control using following control object.');
log('log',control);
// Define self to prevent conflicts with frameworks
if(!self){ var self = this; }
this.type = null;
this.size = { w: control.w, h: control.h };
this.position = { x: control.x, y: control.y };
this.color = control.color;
this.name = control.name;
this.active = false;
}
});
var LED = Class.create(Control,{
initialize: function($super){
$super;
this.type = "led";
}
});
我創建了一個小型的Heroku現場演示:http://blazing-dusk-603.heroku.com/interfaces/16,如果你打開控制檯,你會看到一噸原木,一個在底部LED的實例,沒有大小,位置,顏色,名稱或活動屬性。
這是我第一次使用prototypejs繼承,所以也許我誤解的東西,幫助將不勝感激,當然;)
原來是這樣的,謝謝:)記錄$超級返回一個函數,這就是讓我困惑,我不知道如何工作。對我來說,讓子類需要超類所期望的相同參數也似乎很奇怪,但也許我的OOP思維需求正在增長。 –