Witam
Mam obiekt oraz 3 'klasy' (zupełnie przykładowe, chodzi mi o prosty przykład):
var Registry = {
id: 0,
generujNoweId: function() {
return ++this.id;
}
}
function Figura() {
this.id = Registry.generujNoweId();
this.nazwa = 'Figura';
this.szerokosc = 0;
this.wysokosc = 0;
this.pobierzId = function() {
return this.id;
}
this.pobierzNazwe = function() {
return this.nazwa;
}
}
Prostokat.prototype = new Figura();
function Prostokat(szerokosc, wysokosc) {
this.szerokosc = szerokosc;
this.wysokosc = wysokosc;
this.nazwa = 'Prostokat';
this.obliczPolePowierzchni = function() {
return this.szerokosc*this.wysokosc;
}
}
Kwadrat.prototype = new Prostokat();
function Kwadrat(szerokosc) {
this.szerokosc = szerokosc;
this.wysokosc = szerokosc;
this.nazwa = 'Kwadrat';
}
var k1 = new Kwadrat(12);
alert('Kwadrat 1 ID: ' + k1.id);
//Spodziewane ID = 1 jest
var k2 = new Kwadrat(5);
alert('Kwadrat 2 ID: ' + k2.id);
//Spodziewane ID = 2; nie ma, jest 1
alert('Registry ID: ' + Registry.id);
//Spodziewane ID = 2; nie ma, jest 1
Tak jak w komentarzach przy alertach - nie generuje mi spodziewanych wartości ID.
Wiem, że chodzi o jakiś inny sposób dziedziczenia. Nie wiem tylko jak to zrobić, żeby poprawnie generowało nowe ID za każdym razem, kiedy tworzę nowy obiekt Kwadrat.
Ten post edytował Master Pain 21.02.2011, 15:17:33