Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > pl.comp.lang.php > #15712

Re: Nikomu niepotrzebne zmienne prywatne?

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>

Show all headers | View raw


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


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