🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.www
Article #408304

Re: Javascript - jak tworzyć obiekty w strict mode?

#408304
From: Marek
Date: Mon, 28 Sep 2015 13:37
32 lines
2529 bytes
W dniu 2015-09-27 o 18:46, Borys Pogoreło pisze:


> Teraz zgaduję - zapewne w prototypie ustawiana jest referencja na zmienną
> data, przez co jej wartość jest nadpisana w drugim wywołaniu testClass()
> (tu by się jednak przydała opinia kogoś, kto na JS zjadł sobie zęby).
> Zamiast takich kombinacji możesz zrobić getter getData() w obiekcie
> testClass lub po prostu zapisuj od razu do własności obiektu, czyli
> this.data = _data. Gdybyś wyrzucił definiowanie prototypu poza funkcję, to
> w ogóle by nie doszło do takiej sytuacji.

No i tu mam kilka zastrzeżeń.

1. Jeśli definiowanie prototypu wyrzucę poza funkcję to tracę dostęp do 
zmiennych prywatnych. Przestają one istnieć.

2. Jeśli użyję this.zmienna, to staje się ona publiczną, a tego nie 
chcę. Aż prosi się o katastrofę podczas dziedziczenia "klas" gdy klasa 
potomna będzie używała tak samo nazwanej zmiennej.

3. Gettery / settery wykonały krok wstecz w kolejnych odsłonach JS. 
Kiedyś istniała piękna właściwość __defineGetter__ / __defineSetter__ 
gdzie można było nazwać getter X, który ustawiał zmienną X. Obecnie 
defineProperty musi nazywać się inaczej niż zmienna jaką ustawiamy. Robi 
się to bardzo kłopotliwe w używaniu gdy każda zmienna inaczej musi 
nazywać się lokalnie i na zewnątrz.

No i jestem w kropce... Czy nie da się tego naprawdę jakoś rozwiązać?

-- 
Pozdrawiam,
Marek
Technical Details
Message-ID: <mubfqc$o40$1@news.icm.edu.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!.POSTED!not-for-mail
References: <mtlvuv$3t4$1@news.icm.edu.pl> <1fatjmn7yhrh6$.12pek7r1crfbe$.dlg@40tude.net> <mtmo0d$75a$1@news.icm.edu.pl> <1b7l91pot4apc.4yvv7goat7bo.dlg@40tude.net> <mtojfs$lci$1@news.icm.edu.pl> <swhpswvjkkrk.1kg2bqubgir7v$.dlg@40tude.net>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!.POSTED!not-for-mail
From: Marek <precz@spamowi.com>
Newsgroups: pl.comp.www
Subject: Re: Javascript - jak tworzyć obiekty w strict mode?
Date: Mon, 28 Sep 2015 15:37:07 +0200
Organization: ICM, Uniwersytet Warszawski
Lines: 32
Message-ID: <mubfqc$o40$1@news.icm.edu.pl>
References: <mtlvuv$3t4$1@news.icm.edu.pl> <1fatjmn7yhrh6$.12pek7r1crfbe$.dlg@40tude.net> <mtmo0d$75a$1@news.icm.edu.pl> <1b7l91pot4apc.4yvv7goat7bo.dlg@40tude.net> <mtojfs$lci$1@news.icm.edu.pl> <swhpswvjkkrk.1kg2bqubgir7v$.dlg@40tude.net>
NNTP-Posting-Host: 89-69-222-145.dynamic.chello.pl
Mime-Version: 1.0
X-Trace: news.icm.edu.pl 1443447436 24704 89.69.222.145 (28 Sep 2015 13:37:16 GMT)
X-Complaints-To: usenet@news.icm.edu.pl
NNTP-Posting-Date: Mon, 28 Sep 2015 13:37:16 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0
In-Reply-To: <swhpswvjkkrk.1kg2bqubgir7v$.dlg@40tude.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit