Article View: pl.comp.www
Article #408301Re: Javascript - jak tworzyć obiekty w strict mode?
From: Marek
Date: Mon, 21 Sep 2015 09:43
Date: Mon, 21 Sep 2015 09:43
44 lines
2240 bytes
2240 bytes
W dniu 2015-09-20 o 21:55, Borys Pogoreło pisze:
> Nic się nie staje globalne. Modyfikujesz prototyp, ale wywołanie i tak
> operuje na instancji obiektu, która ma zmienną lokalną.
Czy nie zauważyłeś, że instancja bbb zmodyfikowała zmienną data w
instancji aaa? Zmienna data nie jest w tym przypadku lokalną bo
przyjmuje wartość wspólną dla wszystkich instancji - zachowuje się
globalnie.
Nie rozumiem zatem dlaczego jedna instancja widzi wartości zmiennych
(prywatnych) drugiej instancji? Jak zatem spowodować aby poszczególne
instancje nie zakłócały siebie nawzajem?
Metodą prób i błędów odkryłem, że drobna modyfikacja deklaracji funkcji:
function testClass(_data)
{
var data=_data;
this.read=function()
{
console.log("read",data);
};
}
aaa=new testClass(10);
aaa.read();
bbb=new testClass(20);
aaa.read();
powoduje, że teraz odczyt będzie zupełnie inny:
10
10
Czyli instancja bbb nie zmodyfikowała zmiennej data w instancji aaa.
Dlaczego? Zmienna jest identycznie przecież zadeklarowana. Dlaczego
sposób zadeklarowania funkcji czytającej wpływa na zakres widoczności
zmiennej?
--
Pozdrawiam,
Marek
Technical Details
Message-ID:
<mtojfs$lci$1@news.icm.edu.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!.POSTED!not-for-mailReferences:
<mtlvuv$3t4$1@news.icm.edu.pl> <1fatjmn7yhrh6$.12pek7r1crfbe$.dlg@40tude.net> <mtmo0d$75a$1@news.icm.edu.pl> <1b7l91pot4apc.4yvv7goat7bo.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, 21 Sep 2015 11:43:23 +0200 Organization: ICM, Uniwersytet Warszawski Lines: 44 Message-ID: <mtojfs$lci$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> NNTP-Posting-Host: 89-69-222-145.dynamic.chello.pl Mime-Version: 1.0 X-Trace: news.icm.edu.pl 1442828604 21906 89.69.222.145 (21 Sep 2015 09:43:24 GMT) X-Complaints-To: usenet@news.icm.edu.pl NNTP-Posting-Date: Mon, 21 Sep 2015 09:43:24 +0000 (UTC) User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 In-Reply-To: <1b7l91pot4apc.4yvv7goat7bo.dlg@40tude.net> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit