Thread View: pl.comp.lang.javascript
20 messages
20 total messages
Started by mmiarecka
Sat, 11 Jul 2009 20:19
obiektowosc w js - pytanie o dziedziczenie
Author: mmiarecka
Date: Sat, 11 Jul 2009 20:19
Date: Sat, 11 Jul 2009 20:19
32 lines
1971 bytes
1971 bytes
Mam klase bazowa:
function Bazowa() {
this.getName() {
return "bazowa.getName";
}
this.display(obj) {
alert(obj.getName);
}
}
i klase pochodna:
function Pochodna() {
function Pochodna() {
Bazowa.call(this);
}
this.getName() {
return "pochodna.getName";
}
}
Wydawalo mi sie, ze metoda display klasy Bazowa powinna byc widoczna z
poziomu klasy Pochodna, ale tak nie jest. Nie pomaga prototypowanie.
Dopoki w klasie Pochodna nie wkleje identycznego kodu metody display
jak w Bazowa wywolanie objPochodna.display() zwraca blad 'display is
not a function'. Wolalabym uniknac powielania tego samego kodu we
wszystkich klasach dziedziczacych...
Bede wdzieczna za sugestie oraz ewentualne wytlumaczenie, w ktorym
miejscu popelniam blad.
Re: obiektowosc w js - pytanie o dziedziczenie
Author: mmiarecka
Date: Sun, 12 Jul 2009 10:00
Date: Sun, 12 Jul 2009 10:00
13 lines
1834 bytes
1834 bytes
Zadanie rozwiazalam :) Jednak przespanie sie z problemem czyni cuda. Przede wszystkim popelnilam czeski blad, dwa razy mialam zdefiniowana klase Pochodna, wiec blad, ze metoda nie jest funkcja byl jak najbardziej na miejscu :) Znalazlam tez dwa sposoby na dziedziczenie: - prototypowanie, gdzie obiektKlasyPochodnej instanceof KlasaBazowa zwraca true; - wykorzystanie inheritFrom - co prawda mam dostep do wszystkich metod KlasyBazowej, ale instanceof zwraca mi false... Za wszelkie komentarze zwiazane z obiektowoscia w js bede nieustajaco wdzieczna :)
Re: obiektowosc w js - pytanie o dziedziczenie
Author: marcoos
Date: Sun, 12 Jul 2009 17:43
Date: Sun, 12 Jul 2009 17:43
55 lines
2947 bytes
2947 bytes
On 12 Lip, 12:00, mmiarecka <mmiare...@gmail.com> wrote:
> Za wszelkie komentarze zwiazane z obiektowoscia w js bede nieustajaco
> wdzieczna :)
Po pierwsze, w JS nie ma czegoś takiego jak "klasa". Mechnizmem
zapewniającym dziedziczenie są tutaj prototypy. Słowo "klasa" należy
brać w cudzysłów i rozumieć przez nie "zbiór obiektów o wspólnym
prototypie".
Po drugie, dziedziczenie realizuje się ustawiając prototyp
konstruktora obiektu pochodnego na instancję bazowego.
function Bazowa() {
// ...
}
function Pochodna() {
// ...
}
Pochodna.prototype = new Bazowa(); // tutaj :)
Po trzecie, publiczne funkcje obiektu, które nie potrzebują dostępu do
zmiennych w zasięgu konstruktora dodaje się do prototypu:
Pochodna.prototype.getName = function () {
// ...
}
w przeciwnym wypadku każdy obiekt ma swoją osobną kopię tej funkcji,
marnując pamięć.
Operator instanceof działa tylko na obiektach mających właściwy
łańcuch prototypów. Wywoływanie JakisKonstruktor.call(this) takiego
łańcucha nie buduje.
Po czwarte, nie ma w języku czegoś takiego jak inheritFrom.
Najwyraźniej korzystasz z jakiejś biblioteki.
Po piąte, podany przez Ciebie kod nie ma prawa nawet się uruchomić
(błędy składniowe). :)
Po szóste:
function Pochodna() {
function Pochodna() {
// ...
}
}
Wewnętrzna funkcja Pochodna jest widoczna tylko w zasięgu nadrzędnej
funkcji o tej samej nazwie, co za tym idzie, nie byłaby w ogóle
używana, nawet, jeśli poprawiłabyś czysto formalne błędy składniowe.
--
marcoos.com
Re: obiektowosc w js - pytanie o dziedziczenie
Author: mmiarecka
Date: Wed, 15 Jul 2009 08:43
Date: Wed, 15 Jul 2009 08:43
30 lines
2719 bytes
2719 bytes
On 12 Lip, 19:43, marcoos <marek.step...@gmail.com> wrote: [...] > Po trzecie, publiczne funkcje obiektu, które nie potrzebują dostępu do > zmiennych w zasięgu konstruktora dodaje się do prototypu: > w przeciwnym wypadku każdy obiekt ma swoją osobną kopię tej funkcji, > marnując pamięć. To bardzo cenna uwaga, dziekuje. > Po czwarte, nie ma w języku czegoś takiego jak inheritFrom. > Najwyraźniej korzystasz z jakiejś biblioteki. I tu mnie zastrzeliles... Takie rozwiazanie podpowiedzial mi eclipse... nie importuje zadnej biblioteki... No nic bede musiala poszukac. > Wewnętrzna funkcja Pochodna jest widoczna tylko w zasięgu nadrzędnej > funkcji o tej samej nazwie, co za tym idzie, nie byłaby w ogóle > używana, nawet, jeśli poprawiłabyś czysto formalne błędy składniowe. No wlasnie i tu pojawia sie problem. Takie rozwiazanie, jak umieszczanie zmiennych prywatnych/protected i metod prywatnych/ protected znalazlam w necie: http://www.crockford.com/javascript/private.html Jednak mimo najszczerszych checi chyba jednak nie rozumiem o co biega... chyba ze ja zle rozumiem slowo 'constructor'. To jak po ludzku zaimplementowac prywatne i protected zmienne i metody? Jeszcze raz dziekuje za cenne wskazowki.
Re: obiektowosc w js - pytanie o dziedziczenie
Author: marcoos
Date: Wed, 15 Jul 2009 11:59
Date: Wed, 15 Jul 2009 11:59
56 lines
3262 bytes
3262 bytes
On 15 Lip, 10:43, mmiarecka <mmiare...@gmail.com> wrote:
> To jak po ludzku zaimplementowac prywatne i protected zmienne i
> metody?
Tak naprawdę należy zapomnieć o próbowaniu przenoszenia pojęć Javy do
JS - jest to podejście dość sztuczne i nieco na siłę - i pamiętać
tylko, że zmienne są widoczne tylko w tym zasięgu, w którym zostały
zadeklarowane i w zasięgach potomnych. JS jest językiem totalnie
odmiennym od Javy, jedyne co ma wspólnego, to podobna składnia
odziedziczona po C, ale paradygmaty są zupełnie inne. Poniżej przykład
takiego "na siłę" podejścia...
Jedynym sposobem hermetyzacji w JS są closures, czyli zasięgi funkcji,
za pomocą których można symulować (nie do końca) zachowanie języków w
rodzaju Javy.
var MojeCos = (function () {
var a; // cos w rodzaju "private static"
function MojeCos(a1, b, c) { // a1, b, c - argumenty konstruktora
(jednoczesnie zmienne lokalne zasięgu MojeCos)
var d = 7; // zmienna lokalna zasięgu MojeCos
this.b = b; // publiczne b
a = a1; // zmiana "prywatnego statycznego" a
this.doSth = function() { // publiczna metoda zdefiniowana w
konstruktorze, Crockford nazywa to "priviledged"
alert(a1 + ", " + b + ", " + c + ", " + d); // ma dostęp do a1,
b, c i d dzięki closure
}
}
MojeCos.x = 8; // cos jak "public static"
MojeCos.prototype.doSthElse() { // publiczna metoda prototypu
alert(a); // ma dostep do "private static"
alert(this.b); // ma dostep do publicznych
// alert(c) - nie zadziala, nie ma dostepu, c jest w innym zasiegu
};
return MojeCos;
}());
var mc = new MojeCos();
mc.doSth();
mc.doSthElse();
alert(mc.b);
alert(MojeCos.x);
Kod z głowy, nie testowany - jeśli się gdzieś nie pomyliłem, to
powinien działać. :)
--
marcoos.com
Re: obiektowosc w js - pytanie o dziedziczenie
Author: William Bonawentura
Date: Thu, 16 Jul 2009 05:44
Date: Thu, 16 Jul 2009 05:44
6 lines
1533 bytes
1533 bytes
Użytkownik "marcoos" <marek.stepien@gmail.com> napisał w wiadomości news:5be0104f-8a8c-4001-8154-d8345db1e0e8@h18g2000yqj.googlegroups.com... > Jedynym sposobem hermetyzacji w JS są closures, czyli zasięgi funkcji, Jesteś absolutnie pewnym ? :)
Re: obiektowosc w js - pytanie o dziedziczenie
Author: mmiarecka
Date: Thu, 16 Jul 2009 07:36
Date: Thu, 16 Jul 2009 07:36
46 lines
2562 bytes
2562 bytes
On 12 Lip, 19:43, marcoos <marek.step...@gmail.com> wrote:
[...]
> Po czwarte, nie ma w języku czegoś takiego jak inheritFrom.
> Najwyraźniej korzystasz z jakiejś biblioteki.
No dobra... to ja mam taki kod, ktory dziala bezblednie. Nie udalo mi
sie przetestowac na ie (bo go nie mam), ale na ff dziala bez
zarzutu... Nie dolaczam zadnych plikow js, wiec kod nie korzysta z
dodatkowych bibliotek...
function Node() {
this.getNazwa = function() {
return "Node.getNazwa";
};
this.dodaj = function(nodeObj) {
alert(nodeObj.getNazwa());
};
}
function Kategoria() {
this.inheritFrom = Node;
this.inheritFrom();
this.getNazwa = function() {
return "Kategoria.getNazwa";
};
}
wywoluje tak:
var kat1 = new Kategoria();
var kat2 = new Kategoria();
kat1.dodaj(kat2); // dostaje alerta z 'Kategoria.getNazwa'
var node1 = new Node();
var node2 = new Node();
node1.dodaj(node2); // dostaje alerta z 'Node.getNazwa'
Bede wdzieczna za info, jesli to nie jest czesc jezyka js, to jakim
cudem dziala? Dodam ze korzystalam ze wskazowek zawartych na tej
stronie:
http://www.webreference.com/js/column79/3.html
Re: obiektowosc w js - pytanie o dziedziczenie
Author: Paweł Piskorz
Date: Thu, 16 Jul 2009 10:21
Date: Thu, 16 Jul 2009 10:21
20 lines
1526 bytes
1526 bytes
mmiarecka pisze:
> function Kategoria() {
> this.inheritFrom = Node;
> this.inheritFrom();
this.sratatata = Node;
this.sratatata();
Też zadziała ;)
> this.getNazwa = function() {
> return "Kategoria.getNazwa";
> };
>
> }
--
message[autor="PablO"]::after {
content:"Pozdrawiam";
}
Re: obiektowosc w js - pytanie o dziedziczenie
Author: mmiarecka
Date: Thu, 16 Jul 2009 10:31
Date: Thu, 16 Jul 2009 10:31
10 lines
1857 bytes
1857 bytes
On 16 Lip, 12:21, Paweł Piskorz <nie.ma.ma...@psikre.nie?> wrote: > this.sratatata = Node; > this.sratatata(); > Też zadziała ;) lol... faktycznie :P No dobra... ktos sie pokusi o wytlumaczenie mi ki diabel? W Javie takie hocki nie dzialaja :/ Ja wiem, ze JavaScript to nie Java, ale nie mam innego punktu oparcia jesli chodzi o obiektowosc...
Re: obiektowosc w js - pytanie o dziedziczenie
Author: marcoos
Date: Thu, 16 Jul 2009 11:02
Date: Thu, 16 Jul 2009 11:02
10 lines
1929 bytes
1929 bytes
On 16 Lip, 09:36, mmiarecka <mmiare...@gmail.com> wrote: > Bede wdzieczna za info, jesli to nie jest czesc jezyka js, to jakim > cudem dziala? Dodam ze korzystalam ze wskazowek zawartych na tej > stronie:http://www.webreference.com/js/column79/3.html Paweł już Ci to wyjaśnił, ja natomiast jeszcze zwracam uwagę na to, że przesłaniasz (o ile to kod dla przeglądarki) wbudowany obiekt Node. -- marcoos.com
Re: obiektowosc w js - pytanie o dziedziczenie
Author: mmiarecka
Date: Thu, 16 Jul 2009 11:25
Date: Thu, 16 Jul 2009 11:25
13 lines
2126 bytes
2126 bytes
On 16 Lip, 13:02, marcoos <marek.step...@gmail.com> wrote: [...] > ja natomiast jeszcze zwracam uwagę na to, że > przesłaniasz (o ile to kod dla przeglądarki) wbudowany obiekt Node. Wiem, wiem :) Natomiast ciagle mam problem z ogarnieciem modyfikatorow dostepu... Jedno z przykladowych zadan, ktore znalazlam w necie: "zaimplementuj mi klase X, ktora dziedziczy po Y, ktora ma properties prywatna Z i protected V". O ile z dziedziczeniem i prywatnymi wlasciwosciami nie mam wiekszego problemu o tyle protected zaczyna mi sie snic po nocach w roli koszmaru...
Re: obiektowosc w js - pytanie o dziedziczenie
Author: marcoos
Date: Thu, 16 Jul 2009 17:53
Date: Thu, 16 Jul 2009 17:53
30 lines
2999 bytes
2999 bytes
On 16 Lip, 13:25, mmiarecka <mmiare...@gmail.com> wrote: > Natomiast ciagle mam problem z ogarnieciem modyfikatorow dostepu... A to jest bardzo proste: nie ma żadnych "modyfikatorów dostępu". :) > Jedno z przykladowych zadan, ktore znalazlam w necie: > "zaimplementuj mi klase X, ktora dziedziczy po Y, ktora ma properties > prywatna Z i protected V". O ile z dziedziczeniem i prywatnymi > wlasciwosciami nie mam wiekszego problemu o tyle protected zaczyna mi > sie snic po nocach w roli koszmaru... Nie ma klas w JavaScripcie, ani nie ma pól o dostępie "protected" (ani niczego specjalnie podobnego). Samo sformułowanie takiego zadania, jeśli dotyczy JS, świadczy o tym, że jego autor nie ma pojęcia, o co chodzi. :) W JS nie ma także zmiennych prywatnych. To, co dla uproszczenia (czy zagmatwania, jak tutaj) nazywa się "zmiennymi prywatnymi" jakiejś "klasy", to zwykłe zmienne lokalne jakiejś funkcji, na przykład konstruktora. Można by też przeprowadzić akademicką dyskusję na temat, czy to, co nazywamy "zmiennymi publicznymi" w JS spełnia definicję zmiennej publicznej takiej jak w C++ czy Javie. :) Tak jak napisałem - jedyną hermetyzacją w JS są zasięgi funkcji (closures). Przy ich pomocy można do pewnego stopnia imitować zmienne "prywatne" przy dzięki temu, jak zachowują się zmienne lokalne funkcji. -- marcoos.com
Re: obiektowosc w js - pytanie o dziedziczenie
Author: marcoos
Date: Thu, 16 Jul 2009 17:55
Date: Thu, 16 Jul 2009 17:55
8 lines
1713 bytes
1713 bytes
On 16 Lip, 07:44, "William Bonawentura" <n...@ipartners.pl> wrote: > > Jedynym sposobem hermetyzacji w JS są closures, czyli zasięgi funkcji, > Jesteś absolutnie pewnym ? :) A masz kontrprzykład? Nie sądzę. :) -- marcoos.com
Re: obiektowosc w js - pytanie o dziedziczenie
Author: marcoos
Date: Thu, 16 Jul 2009 18:14
Date: Thu, 16 Jul 2009 18:14
58 lines
3755 bytes
3755 bytes
On 16 Lip, 09:36, mmiarecka <mmiare...@gmail.com> wrote:
> Bede wdzieczna za info, jesli to nie jest czesc jezyka js, to jakim
> cudem dziala? Dodam ze korzystalam ze wskazowek zawartych na tej
> stronie:http://www.webreference.com/js/column79/3.html
Wcale nie działa. Owszem, coś tam robi, ale nie to, czego tak naprawdę
chcesz. :)
function Kategoria() {
this.inheritFrom = Node;
this.inheritFrom();
}
Co tu zostało zrobione: funkcja-konstruktor o (nieszczęśliwej,
konfliktogennej) nazwie "Node" została przypisana do tworzonego
obiektu pod dziwną i niepasującą nazwą "inheritFrom" i zaraz potem
wywołana. Dzięki temu wprawdzie "this" w tak wywołanej funkcji Node
wskazuje na właściwy obiekt (ten sam this, co wewnątrz konstruktora
Kategoria), ale nie zostanie zachowana hierarchia prototypów.
k = new Kategoria();
alert(k instanceof Node); // false
Ponadto to całe "inheritFrom" wykonuje się (zupełnie niepotrzebnie)
przy każdej instancjacji konstruktora Kategoria. Nie ma to sensu -
szkoda czasu i pamięci.
Dlatego prawidłowo powinno być:
function Kategoria() {
// zakładam, że ma to być funkcja "priviledged"; jeśli nie,
//to powinna być zdefiniowana w prototypie
this.getNazwa = function() {
return "Kategoria.getNazwa";
};
}
Kategoria.prototype = new Node();
W ten sposób prototyp Kategorii jest instancją Node (i tylko raz
zostanie ona zinstancjowana do celów dziedziczenia w Kategorii), a
hierarchia prototypów zostanie zachowana:
k = new Kategoria();
alert(k instanceof Node); // true
Tak działa (pseudo-)klasyczne dziedziczenie w JS. Niektórzy piszą
sobie jakieś funkcje, które to upraszczają (metoda
Function.prototype.method proponowana przez Crockforda, kiedy jeszcze
nie był wrogiem udawania "klasowości" ;)), Prototype.js i inne
biblioteki dostarczają odpowiedni cukier składniowy, ale zasada jest
ta sama.
Inna sprawa, że można sobie całkowicie poradzić (prawie) bez
konstruktorów i operatora new, odchodząc od udawania Javy. Zob.
http://javascript.crockford.com/prototypal.html :)
--
marcoos.com
Re: obiektowosc w js - pytanie o dziedziczenie
Author: William Bonawentura
Date: Fri, 17 Jul 2009 07:31
Date: Fri, 17 Jul 2009 07:31
12 lines
1851 bytes
1851 bytes
Użytkownik "marcoos" <marek.stepien@gmail.com> napisał w wiadomości news:eb247ef3-ba6f-4d85-ab8b-8c8a84181620@o7g2000yqb.googlegroups.com... On 16 Lip, 07:44, "William Bonawentura" <n...@ipartners.pl> wrote: > > Jedynym sposobem hermetyzacji w JS są closures, czyli zasięgi funkcji, > Jesteś absolutnie pewnym ? :) A masz kontrprzykład? Nie sądzę. :) Np. konwencja nazewnicza. Albo kontrola "isinstance" dla this wewnątrz chronionej metody.
Re: obiektowosc w js - pytanie o dziedziczenie
Author: mmiarecka
Date: Fri, 17 Jul 2009 07:50
Date: Fri, 17 Jul 2009 07:50
9 lines
1795 bytes
1795 bytes
On 16 Lip, 20:14, marcoos <marek.step...@gmail.com> wrote: > Wcale nie działa. Owszem, coś tam robi, ale nie to, czego tak naprawdę > chcesz. :) Do tego juz w miedzy czasie doszlam sama :) ale i tak dziekuje za opisanie slowami tego, co gdzies tam pod skora czulam :) Ciezko sie walczy z JS majac nalecialosci z Javy... To dwa rozne swiaty.
Re: obiektowosc w js - pytanie o dziedziczenie
Author: mmiarecka
Date: Fri, 17 Jul 2009 07:54
Date: Fri, 17 Jul 2009 07:54
40 lines
3562 bytes
3562 bytes
On 16 Lip, 19:53, marcoos <marek.step...@gmail.com> wrote: > On 16 Lip, 13:25, mmiarecka <mmiare...@gmail.com> wrote: > > > Natomiast ciagle mam problem z ogarnieciem modyfikatorow dostepu... > > A to jest bardzo proste: nie ma żadnych "modyfikatorów dostępu". :) > > > Jedno z przykladowych zadan, ktore znalazlam w necie: > > "zaimplementuj mi klase X, ktora dziedziczy po Y, ktora ma properties > > prywatna Z i protected V". O ile z dziedziczeniem i prywatnymi > > wlasciwosciami nie mam wiekszego problemu o tyle protected zaczyna mi > > sie snic po nocach w roli koszmaru... > > Nie ma klas w JavaScripcie, ani nie ma pól o dostępie "protected" (ani > niczego specjalnie podobnego). Samo sformułowanie takiego zadania, > jeśli dotyczy JS, świadczy o tym, że jego autor nie ma pojęcia, o co > chodzi. :) Powiem tak - tez mi sie tak wydaje, ale ja jestem ciagle zielona w js wykraczajacym poza operowanie na strukturze DOM. Zadanie, ktore przytoczylam dostalam od rekrutera jak przyklad tego co mnie czeka na tescie rekrutacyjnym... > W JS nie ma także zmiennych prywatnych. To, co dla uproszczenia (czy > zagmatwania, jak tutaj) nazywa się "zmiennymi prywatnymi" jakiejś > "klasy", to zwykłe zmienne lokalne jakiejś funkcji, na przykład > konstruktora. Można by też przeprowadzić akademicką dyskusję na temat, > czy to, co nazywamy "zmiennymi publicznymi" w JS spełnia definicję > zmiennej publicznej takiej jak w C++ czy Javie. :) > > Tak jak napisałem - jedyną hermetyzacją w JS są zasięgi funkcji > (closures). Przy ich pomocy można do pewnego stopnia imitować zmienne > "prywatne" przy dzięki temu, jak zachowują się zmienne lokalne > funkcji. To juz opanowalam, umiem swobodnie zbudowac lancuch dziedziczenia, z uzyciem wlasciwosci "publicznych" i "prywatnych". Teraz pozostaje mi przekonanie rekrutera :P Dziekuje marcoos, Twoje wypowiedzi bardzo duzo mi daly.
Re: obiektowosc w js - pytanie o dziedziczenie
Author: marcoos
Date: Fri, 17 Jul 2009 09:56
Date: Fri, 17 Jul 2009 09:56
22 lines
2357 bytes
2357 bytes
On 17 Lip, 09:31, "William Bonawentura" <n...@ipartners.pl> wrote: > > > Jedynym sposobem hermetyzacji w JS są closures, czyli zasięgi funkcji, > > Jesteś absolutnie pewnym ? :) > > A masz kontrprzykład? Nie sądzę. :) > > Np. konwencja nazewnicza. Konwencja nazewnicza jest tylko konwencją. Owszem, często jest to najlepsze i najprostsze rozwiązanie, ale nikt nie broni złamać konwencji i pisać do "prywatnych" własności z podkreśleniem w nazwie. :) > Albo kontrola "isinstance" dla this wewnątrz chronionej metody. isinstance brzmi jak Python, miałeś chyba na myśli instanceof. :) Nie nazwałbym tego jednak hermetyzacją - metoda dalej jest dostępna, tylko zmieniasz jej zachowanie.:) -- marcoos.com
Re: obiektowosc w js - pytanie o dziedziczenie
Author: William Bonawentura
Date: Fri, 17 Jul 2009 11:38
Date: Fri, 17 Jul 2009 11:38
11 lines
2096 bytes
2096 bytes
Użytkownik "marcoos" <marek.stepien@gmail.com> napisał w wiadomości news:3ff4d8a4-6862-4933-aedd-a7c3f58ba854@b14g2000yqd.googlegroups.com... > Konwencja nazewnicza jest tylko konwencją. Owszem, często jest to > najlepsze i najprostsze rozwiązanie, ale nikt nie broni złamać > konwencji > i pisać do "prywatnych" własności z podkreśleniem w nazwie. :) Reguła dla kompilatora też jest tylko konwencją - nie pozwala na defaultowe skompilowanie kodu z takim odwołaniem. Kto chce wykona metodę "hackiem". W technice closures też możesz odczytać źródło funkcji i wykonać ją evalem.
Re: obiektowosc w js - pytanie o dziedziczenie
Author: marcoos
Date: Fri, 17 Jul 2009 13:26
Date: Fri, 17 Jul 2009 13:26
9 lines
2283 bytes
2283 bytes
On 17 Lip, 13:38, "William Bonawentura" <n...@ipartners.pl> wrote: > Reguła dla kompilatora też jest tylko konwencją - nie pozwala na defaultowe > skompilowanie kodu z takim odwołaniem. Kto chce wykona metodę "hackiem". W > technice closures też możesz odczytać źródło funkcji i wykonać ją evalem. Nie będzie to możliwe w ECMAScripcie 5 z dyrektywą "use strict". -- marcoos.com
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads