Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > pl.comp.lang.php > #15712
| From | Marek S <precz@spamowi.com> |
|---|---|
| Newsgroups | pl.comp.lang.php |
| Subject | Re: Nikomu niepotrzebne zmienne prywatne? |
| Date | 2018-01-28 15:07 +0100 |
| Organization | ATMAN - ATM S.A. |
| Message-ID | <p4klfl$4gq$1@node1.news.atman.pl> (permalink) |
| References | <p4dakb$a6j$1@node2.news.atman.pl> <ll7vozvk24nr.sp52w7f4aisx.dlg@40tude.net> |
W dniu 27-01-2018 o 22:59, Borys Pogoreło pisze: >> 1. Wprowadzono wreszcie pojęcie klas i dziedziczenia ale... zignorowano >> zmienne prywatne. Nie ma czegoś takiego w samych założeniach. > > Bo te klasy i dziedziczenie to tylko opakowanie do dziedziczenia > prototypowego i kopozycji. Ono jest na tyle nietypowe, że zdecydowano się > na takie uproszczenia. A Ty próbujesz podejść JS od strony klas. W JS istnieje wyrażenie class, które zachowuje się odmiennie niż dotychczasowe symulowanie klas za pomocą funkcji. Potrafi dziedziczyć po innej klasie za pomocą extends w fazie deklaracji (to już wykracza poza model kompozycji), posiada operator "super" umożliwiający tworzenie odwołań do metod klasy, w przeciwieństwie to funkcji nie obowiązuje hoisting, kod klasy zawsze uruchamiany jest w trybie ścisłym, metody klasy nie podlegają wyliczeniu, metody klasy nie mają - w odróżnieniu od funkcji ich udających - konstruktorów, nie da się wywołać konstruktora klasy inaczej niż poprzez new. Wszystko wskazuje na to, że klasa w JS zbliża się powoli do ich odpowiedników znanych w innych językach. Tak, wiem, dziedziczenie jest nadal prototypowe, co implikuje ograniczenia. Przypuszczam, że w ES8,9,100 w końcu keyword "private" również zostanie wykorzystany, choć z protected pewnie problem zawsze będzie. Dlaczego zatem podejście do klas w JS jako do prawdziwych klas jest niewłaściwe? >> Czy też sądzicie, że zmienne prywatne to przeżytek? > > Nie. Ale próbujesz, jak to angole mawiają, porównywać pomarańcze do jabłek. > > Zmienne prywatne możesz zasymulować funkcją zwracającą obiekt. Będzie on > nadal mieć dostęp do kontekstu funkcji. Sęk w tym, że ja nie chcę postępować rodem z ES5 skoro mamy epokę ES6 a niebawem ES7. Romanowi pokazałem kod jakiego używam do symulowania zmiennych prywatnych korzystając z mechanizmów ES6. Nie chcę go dublować w tym wątku - zerknij proszę na moją odpowiedź z 27.01 jemu udzieloną. Niestety... bez enkapsulacji nadal nie da się obejść problemu. Przynajmniej do czasu kiedy moduły nie zaczną w przeglądarkach działać. Natomiast to co się udało wyeliminować, to zwracanie obiektu przez funkcję. -- Pozdrawiam, Marek
Back to pl.comp.lang.php | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Nikomu niepotrzebne zmienne prywatne? Marek S <precz@spamowi.com> - 2018-01-25 20:19 +0100
Re: Nikomu niepotrzebne zmienne prywatne? Roman Tyczka <noemail@because.no> - 2018-01-25 21:29 +0100
Re: Nikomu niepotrzebne zmienne prywatne? Marek S <precz@spamowi.com> - 2018-01-26 00:07 +0100
Re: Nikomu niepotrzebne zmienne prywatne? Roman Tyczka <noemail@because.no> - 2018-01-26 23:22 +0100
Re: Nikomu niepotrzebne zmienne prywatne? Marek S <precz@spamowi.com> - 2018-01-27 13:24 +0100
Re: Nikomu niepotrzebne zmienne prywatne? Borys Pogoreło <borys@pl.edu.leszno> - 2018-01-27 22:59 +0100
Re: Nikomu niepotrzebne zmienne prywatne? Marek S <precz@spamowi.com> - 2018-01-28 15:07 +0100
Re: Nikomu niepotrzebne zmienne prywatne? Wojciech Bancer <wojciech.bancer@gmail.com> - 2018-01-28 16:14 +0100
Re: Nikomu niepotrzebne zmienne prywatne? Marek S <precz@spamowi.com> - 2018-01-28 20:35 +0100
Re: Nikomu niepotrzebne zmienne prywatne? Wojciech Bancer <wojciech.bancer@gmail.com> - 2018-01-28 22:01 +0100
Re: Nikomu niepotrzebne zmienne prywatne? Marek S <precz@spamowi.com> - 2018-01-29 19:01 +0100
Re: Nikomu niepotrzebne zmienne prywatne? Wojciech Bancer <wojciech.bancer@gmail.com> - 2018-01-29 20:12 +0100
Re: Nikomu niepotrzebne zmienne prywatne? Borys Pogoreło <borys@pl.edu.leszno> - 2018-01-30 20:36 +0100
Re: Nikomu niepotrzebne zmienne prywatne? Wojciech Bancer <wojciech.bancer@gmail.com> - 2018-02-01 22:15 +0100
csiph-web