Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript] Problem z generowaniem wartości zmiennej w 'klasie' nadrzędnej
Master Pain
post
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 5.04.2007
Skąd: Jarocin

Ostrzeżenie: (0%)
-----


Witam

Mam obiekt oraz 3 'klasy' (zupełnie przykładowe, chodzi mi o prosty przykład):
  1. var Registry = {
  2. id: 0,
  3.  
  4. generujNoweId: function() {
  5. return ++this.id;
  6. }
  7. }
  8.  
  9. function Figura() {
  10. this.id = Registry.generujNoweId();
  11. this.nazwa = 'Figura';
  12. this.szerokosc = 0;
  13. this.wysokosc = 0;
  14.  
  15. this.pobierzId = function() {
  16. return this.id;
  17. }
  18.  
  19. this.pobierzNazwe = function() {
  20. return this.nazwa;
  21. }
  22. }
  23.  
  24. Prostokat.prototype = new Figura();
  25.  
  26. function Prostokat(szerokosc, wysokosc) {
  27. this.szerokosc = szerokosc;
  28. this.wysokosc = wysokosc;
  29. this.nazwa = 'Prostokat';
  30.  
  31. this.obliczPolePowierzchni = function() {
  32. return this.szerokosc*this.wysokosc;
  33. }
  34. }
  35.  
  36. Kwadrat.prototype = new Prostokat();
  37.  
  38. function Kwadrat(szerokosc) {
  39. this.szerokosc = szerokosc;
  40. this.wysokosc = szerokosc;
  41. this.nazwa = 'Kwadrat';
  42. }
  43.  
  44. var k1 = new Kwadrat(12);
  45. alert('Kwadrat 1 ID: ' + k1.id);
  46. //Spodziewane ID = 1 jest
  47.  
  48. var k2 = new Kwadrat(5);
  49. alert('Kwadrat 2 ID: ' + k2.id);
  50. //Spodziewane ID = 2; nie ma, jest 1
  51.  
  52. alert('Registry ID: ' + Registry.id);
  53. //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
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.09.2025 - 22:22