Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] prototype like in JavaScript - jedna własność..., chodzi o prosty wzorzec i może jest prosta implementacja jednej...
zegarek84
post
Post #1





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

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


jak w tytule - chodzi mi bardziej o pewną własność - wiem, że można to zastosować przez iniekcję obiektów oraz magiczne __call i __get ale może da się jeszcze prościej np. jakoś dodatkowo wykorzystując funkcje anonimowe które w końcu są obiektami a więc przekazywane przez referencjęquestionmark.gif... i teraz meritum i fragmenty kodu dla tych co rozumieją JavaScript - chodzi mi o uzyskanie funkcjonalności z dziedziczonych obiektów gdzie nie znajduje własności u potomnych szuka u rodziców w gorę puki nie jest przesłoniona lub zdeklarowana własność po drodze - ale mam na myśli dynamiczną własność która by także się zmieniała w stworzonych obiektach... jeśli nie będzie jakichś wskazówek obuduję inne obiekty ale kodziki z js....:
[JAVASCRIPT] pobierz, plaintext
  1. p = {a:3};
  2. c = function(){};
  3. c.prototype = p;
  4. d = new c;
  5. console.log(d); //d.a===3
[JAVASCRIPT] pobierz, plaintext

[JAVASCRIPT] pobierz, plaintext
  1. p = {a:3};
  2. c = function(){};
  3. c.prototype = p;
  4. d = new c;
  5. p.a = 6;
  6. console.log(d); //d.a===6
[JAVASCRIPT] pobierz, plaintext

[JAVASCRIPT] pobierz, plaintext
  1. p = {a:3};
  2. c = function(){};
  3. c.prototype = p;
  4. d = new c;
  5. p.a = 6;
  6. d.a = 5;
  7. console.log(d); //d.a===5
[JAVASCRIPT] pobierz, plaintext

[JAVASCRIPT] pobierz, plaintext
  1. p = {a:3};
  2. c = function(){};
  3. c.prototype = p;
  4. d = new c;
  5. p.a = 6;
  6. d.a = 5;
  7. delete d.a;
  8. console.log(d); //d.a===6
[JAVASCRIPT] pobierz, plaintext


Czyli dokładniej chodzi mi o dynamiczną podmianę pewnej własności u dzieci już stworzonych - może ktoś coś podobnego implementował - nie chcę podawać kodów gdyż może od php 5.3 jest jakiś naturalniejszy sposób od tego co ja widzę - a dróg jest kilka - albo skorzystać z zmiennych statycznych i odpowiednio to obudować, albo przez iniekcję innych obiektów, albo przez metody dostępowe prywatne i publiczne - ogólnie chciałbym zobaczyć kilka możliwych rozwiązań działających podobnie w php jak kod powyżej - mogą być linki do angielskich lub rosyjskich blogów...

i jeszcze raz podkreślam, że nie chodzi mi o sam wzorzec prototype a o jedną własność występującą w JavaScript gdzie dynamicznie jeśli potomek nie nadpisze czy to w swoim prototypie tej własności lub w już stworzonym obiekcie własności tihs.a to odwołujemy się do najbliższego przodka, gdzie ta własność [nie tylko zmienna ale i funkcja] jest zdefiniowana - trochu to przypomina zmienne statyczne gdzie podmienimy w jednej z klas a zmienia się we wszystkich powiązanych jednak nie o to chodzi ;]

wiem, że ktoś może powiedzieć, że to szukanie dziury w całym skoro wiem jak to zaimplementować ale może można prościej niż ja to widzę i czekam na jakiekolwiek odpowiedzi ^^

pozdrawiam zegarek84

Ten post edytował zegarek84 6.03.2011, 00:33:09


--------------------
Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.

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: 21.08.2025 - 17:19