🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.www
Article #408301

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

#408301
From: Marek
Date: Mon, 21 Sep 2015 09:43
44 lines
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-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>

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