Erekcja na widok konstruktora kopiującego w javascript

Tytuł dedykuję Łukaszowi Płachcie, który prawie pękł ze śmiechu jak się dowiedział.
W pewnej chwili bardzo potrzebowałem konstruktora kopiującego w pewnym projekcie nad którym siedzę w pracy. Do tej pory nie wiedziałem, że taka konstrukcja istnieje i nie wiedziałem do czego może być mi potrzebna. Może gdybym bardziej uważał na zajęciach z programowania (studia czasem się przydają, ale rzadko). Problem pojawił się gdy musiałem przekazać obiekt javascript pomiędzy dwiema stronami, postanowiłem użyć json`a do zapisania obiektu, załadowania do ciasteczka i rozpakowania na stronie docelowej (a propos, jeśli ktoś zna lepszą metodę to z chęcią przeczytam i się czegoś nauczę).

Jako, że obiekt miał metody przypisane do siebie, rozpakowanie go na stronie docelowej nie odwzorowywało metod a jedynie właściwości. I tutaj jak ulał pasuje wymieniony w tytule konstruktor, który jako argument przyjmuje obiekt swojego typu i tworzy ładny obiekt z właściwymi dla swojego typu metodami. A teraz przykład takiego konstruktora gdyby ktoś szukał:

function jakis_obiekt(obiekt)
{
    if (obiekt === null || obiekt === undefined)
   {
	this.wlasciwosc1 = 'Idzie rak';
	this.wlasciwosc2 = 200;
    }
    else
    {
	this.wlasciwosc1 = obiekt.wlasciwosc1;
	this.wlasciwosc2 = obiekt.wlasciwosc2;
    }

    this.robie_cos = function() {
	....jakiś kod coś robiący
	});
    }
}

Potem wystarczy wywołać

var inny_obiekt = jakis_obiekt(JSON.parse(cookie))

aby otrzymać obiekt.

Happy coding.

5 Responses to “Erekcja na widok konstruktora kopiującego w javascript”


  • Nie ma chyba lepszej metody na przekazanie obiektu js niż… obiekt js (którym de facto jest json – obrany z metod obiekt js). Nie liczyłbym przeto na jakiś lepszy pomysł ;)

  • P.S. w chromium nei działa przycisk edit i Usuń
    P.S.2: Niby to twój blog, ale zawsze lepiej mi (odbiorcy) czyta się posty z kulturalnie dobranymi tematami ;)

    • Musiałem taki temat dać, to właściwie cytat. A co do edycji postów to mam zamiar wychrzanić plugin i poszukać innego. W tym każą mi się zarejestrować na jakimś forum abym mógł pobierać nowe wersje. Może jednak znajdzie się jakaś metoda, liczę na inwencję co ileś tam głów to nie jedna.
      P.S.
      Miło mi, że ktoś to czyta. Dzięki.
      P.S.2
      To się, może nie pojawić na linuxrss.pl właśnie z powodu tytułu i może trochę treści bo to nic odkrywczego.

  • Ja też czytam czasem :P A co jeśli do JSONa zostanie zserializowany inny obiekt i przekazany do konstruktora tak, że akurat potrzebnych pól nie będzie? Wykładka? :>
    .-= Łukasz Klich´s last blog ..…o stanie wstrzymania w HP 6735s =-.

  • No w tym wypadku tak, ale to miało na celu tylko pokazać o co biega. Jak ktoś bardzo chce to może testować

    obiekt instanceof jakis_obiekt

Leave a Reply

CommentLuv badge