🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.php
Article #231933

Re: Nikomu niepotrzebne zmienne prywatne?

#231933
From: Marek S
Date: Mon, 29 Jan 2018 18:01
49 lines
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-mail
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>

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