![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 426 Pomógł: 32 Dołączył: 24.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
http://code.google.com/p/jsclassextend/
Mała biblioteka do tworzenia i rozszerzania obiektów w JSie. Prosta klasa:
rozszerzanie:
instancja:
więcej przykładów na googlecodzie, zapraszam do komentów (IMG:style_emoticons/default/smile.gif) Ten post edytował deirathe 11.01.2011, 22:34:05 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 426 Pomógł: 32 Dołączył: 24.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem czy patrzyłeś może w kod który tam leży na googl'u. Twój pomysł mi się mega podoba, ale nie mam koncepcji na chwilę obecną jak tego dokonać (IMG:style_emoticons/default/biggrin.gif) tak żeby instanceof działał jak należy (IMG:style_emoticons/default/smile.gif)
To to samo co w php
ps. jeszcze teraz przyszło mi do głowy coś takiego, że można by jeszcze dorobić np. obsługe abstrakcyjnych metod... a można by to zrobić np. w ten deseń, że np. definiujesz zmienną window.abstract = {} (lub tablica [] lub anonimowa funkcja - nie ważne)... dalej jeszcze tą zmienną sobie zbuforujesz gdzie trzeba - ale mając taką zmienną w window można pisać np. {g: abstract} - a potem w konstruktorze lub na extend strawdzasz czy zmienna !== abstract (jeśli będzie false to trzeba wyrzucić jakiś wyjątek informujący o braku implementacji metody o nazwie...)... z kolei klasy abstrakcyjne mógłbyś utworzyć w taki sposób, że w konstruktor daje się funkcję itterująca po własnych metodach i sprawdzającą czy czasem zmienna nie równa się abstract i wyrzucić wyjątek jeśli komuś przyjdzie do głowy tworzenie obiektu z takiej klasy oczywiście nazwa abstract jest raczej zarezerwowana [czy jak się to zwie...] pozdro (IMG:style_emoticons/default/winksmiley.jpg) Abstract będzie dużo łatwiejsze, można to zrobić tak jak ze static'iem:
Ten post edytował deirathe 12.01.2011, 01:59:38 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
do samych źródeł nie zaglądałem - trochu nie mam czasu - tylko na przykłady...
...To to samo co w php... właśnie dlatego się pytałem w którą stronę jest tutaj dziedziczenie gdyż z samej konstrukcji js nie wiedziałem (IMG:style_emoticons/default/winksmiley.jpg) - fakt faktem sam mogłem sprawdzić pisząc coś na wzór:
tyle, że jak już wcześniej wspominałem skoro w extend jest szkielet klasy to tutaj ta nazwa jakoś mi nie pasuje... pozdro... widzę, iż wiesz co gdzie i to dosyć dobrze napisałeś choć jeszcze można to dopracować by nie było niejasności (IMG:style_emoticons/default/winksmiley.jpg) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 11:49 |