Article View: pl.comp.lang.php
Article #231933Re: Nikomu niepotrzebne zmienne prywatne?
From: Marek S
Date: Mon, 29 Jan 2018 18:01
Date: Mon, 29 Jan 2018 18:01
49 lines
2780 bytes
2780 bytes
W dniu 28-01-2018 o 22:01, Wojciech Bancer pisze:
>> "...ECMAScript 5 wiele bibliotek dostarczało
>> narzędzia, dzięki którym mogło się wydawać, że JavaScript obsługuje
>> klasy."
>
> Wydawać?
No więc ja też z internetu, a konkretnie w tym przypadku - wspomnianej
książki tą wiedzę czerpię. Jeśli autor zdanie tak sformułował, to ulegam
przeświadczeniu, że teraz jest inaczej, lepiej. Nie potrafię więc
zadecydować, które ze sprzecznych (ogólnie teraz mówię, bez nawiązania
do klas) oficjalnie publikowanych informacji przez wydawnictwa jest
prawdą, a która fałszem.
>>> Rectangle.prototype.constructor = Rectangle;
>>
>> Ponoć właśnie nie do końca. Funkcjonalnie w ES5 owszem. Ale w ES6 i w
>> klasach nie da się tego przeprowadzić bo prototype klas jest read only.
>> Ponoć w tym kierunku będzie rozwój JS prowadzony.
>
> Czego się nie da przeprowadzić?
Modyfikowania prototypu klasy w odróżnieniu od prototypu funkcji.
> Wykonać kodu powyżej np. na node 8?
> Da się. Nie da się wywołać konstruktora "klasy" jak zauwazyłeś, ale
> to nadal jest jedynie syntax sugar.
Strasznie to mętne. "Syntax sugar" tłumaczę sobie jako skrócony zapis
czego, co przedtem było rozwlekłe.
x=> x+1
zamiast
function cosTam(x) {return x+1;}
Albo Object.assign() zamiast funkcji typu mix-in
Tymczasem jeśli coś zachowuje się inaczej, tak jak np prototypy klas z
ES6 względem prototypów funkcji z ES5 albo możliwość odwoływania się do
metod klasy bazowej poprzez "super", to jaki tu cukierek? To nowy
mechanizm. Tego nie da się zasymulować w ES5.
--
Pozdrawiam,
Marek
Technical Details
Message-ID:
<p4nnit$41l$1@node1.news.atman.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mailReferences:
<p4dakb$a6j$1@node2.news.atman.pl> <ll7vozvk24nr.sp52w7f4aisx.dlg@40tude.net> <p4klfl$4gq$1@node1.news.atman.pl> <slrnp6rq5p.14c5.wojciech.bancer@pl-test.org> <p4l8lo$n3s$1@node1.news.atman.pl> <slrnp6segp.1bij.wojciech.bancer@pl-test.org>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail From: Marek S <precz@spamowi.com> Newsgroups: pl.comp.lang.php Subject: Re: Nikomu niepotrzebne zmienne prywatne? Date: Mon, 29 Jan 2018 19:01:56 +0100 Organization: ATMAN - ATM S.A. Lines: 49 Message-ID: <p4nnit$41l$1@node1.news.atman.pl> References: <p4dakb$a6j$1@node2.news.atman.pl> <ll7vozvk24nr.sp52w7f4aisx.dlg@40tude.net> <p4klfl$4gq$1@node1.news.atman.pl> <slrnp6rq5p.14c5.wojciech.bancer@pl-test.org> <p4l8lo$n3s$1@node1.news.atman.pl> <slrnp6segp.1bij.wojciech.bancer@pl-test.org> NNTP-Posting-Host: 89-69-207-111.dynamic.chello.pl Mime-Version: 1.0 X-Trace: node1.news.atman.pl 1517248925 4149 89.69.207.111 (29 Jan 2018 18:02:05 GMT) X-Complaints-To: usenet@atman.pl NNTP-Posting-Date: Mon, 29 Jan 2018 18:02:05 +0000 (UTC) User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2 In-Reply-To: <slrnp6segp.1bij.wojciech.bancer@pl-test.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit