Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript] zmienne klasowe "protected" w javascript
--adrian--
post
Post #1





Goście







Witam
W taki sposob realizuje dziedziczenie w javascripcie:
  1. var KlasaPochodna=function()
  2. {
  3. var tempBazowa=new KlasaBazowa();
  4. for (property in tempBazowa)
  5. {
  6. this[property] = tempBazowa[property];
  7. }
  8.  
  9. ...
  10. }

Niestety w ten sposob przekazywane sa tylko funkcje i zmienne "publiczne". Moje pytanie jest czy da sie w jakis sposob dziedziczyc z klasy bazowej zmienne i metody "prywatne"(tj. w innych jezykach "protected")? z góry dziekuje za wszystkie odpowiedzi
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
droslaw
post
Post #2





Grupa: Zarejestrowani
Postów: 98
Pomógł: 33
Dołączył: 10.05.2011
Skąd: Krak

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


Funkcje call/apply to jeden ze sposobów na dziedziczenie w js. Przydaje się w tedy kiedy chcesz wywołać konstruktor klasy nadrzędnej zamiast polegać tylko na prototypie. Obiekty stworzone wten sposób działają szybciej, ale potrzebują trochę więcej pamięci.
Mi najbardziej przeszkadza, to że dala call/apply nie zawsze działa instanceof np.:
Kod
object instanceof Child; // true
object instanceof Parent // false.

Przy prototypowaniu trzeba uważać też na pola prywatne, jeśli dziedziczyśz w taki sposób:
Kod
Child.prototype = new Parent();

wszystkie obiekty Child będą mięć te same wartości pól prywatnych dziedziczonych z Parent, co się nie zdarzy prze drugiej metodzie.

Ten post edytował droslaw 10.09.2012, 10:22:00
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 8.10.2025 - 20:55