-
Data: 2015-09-27 18:46:03
Temat: Re: Javascript - jak tworzyć obiekty w strict mode?
Od: Borys Pogoreło <b...@p...edu.leszno> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Dnia Mon, 21 Sep 2015 11:43:23 +0200, Marek napisał(a):
> 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.
Tak, teraz widzę. Ale ogólnie to strasznie naciągnąłeś możliwości języka i
nic dziwnego, że Ci cuda wychodzą :) Na pewno przez takie zdefiniowanie
prototypu powodujesz, że jego zakres widoczności sięga do granic funkcji i
przez to zmienna "data" jest widoczna, co nie znaczy że powinieneś do niej
sięgać. Z kolei modyfikacja prototypu jest współdzielona między obiektami
(choć tu jest parę zastrzeżeń).
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.
--
Borys Pogoreło
borys(#)leszno,edu,pl
Następne wpisy z tego wątku
- 28.09.15 09:02 n...@t...net.pl
- 28.09.15 15:37 Marek
- 28.09.15 15:46 Marek
- 28.09.15 18:22 Borys Pogoreło
- 28.09.15 20:42 Cezary Tomczyk
- 28.09.15 22:00 Borys Pogoreło
- 29.09.15 10:17 n...@t...net.pl
- 01.10.15 19:27 Marek
- 02.10.15 09:31 n...@t...net.pl
- 02.10.15 12:02 Marek
- 03.10.15 08:33 n...@t...net.pl
- 03.10.15 11:18 Cezary Tomczyk
- 03.10.15 12:17 Marek
- 03.10.15 12:20 Marek
- 05.10.15 09:33 n...@t...net.pl
Najnowsze wątki z tej grupy
- UWAGA: MAM PODEJRZENIE, ŻE onet.pl DOKONUJE ATAKÓW!!!
- Komisja sejmowa odrzuca petycję ws. obowiązkowych kanałów RSS na stronach podmiotów publicznych
- kol. sukces po polsku: "Samurai Labs. Technologia do zapobiegania samobójstwom"
- Wściekli obywatele spalili budynek parlamentu Nepalu [bo odcięli im amerykańskie serwery społecznościowe - przyp. JMJ]
- UWAGA: MAM PODEJRZENIE, ŻE trojmiasto.pl DOKONUJE ATAKÓW
- Cenzura na wolnemedia.net - likwidacja codziennej sekcji "Sygnały zauważone"
- Nowe style na energokod.pl
- Jak działa hosting w którym wykupuje się sam serwer i domenę, bez IP?
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Do sądu trafił pozew zbiorowy przeciw Google'owi - oskarżenie o praktyki monopolistyczne na rynku reklamy internetowej
- Jakie znacie działające serwery grup dyskusyjnych?
- is it live this group at news.icm.edu.pl
- php, linki z nazwami a $_GET, SEO
- www polityka pl captcha
- dyktatura brudnego palucha
Najnowsze wątki
- 2025-10-26 automat czy manual
- 2025-10-25 W UK (groźnego) seksualnego przestępce (z Etiopii) aż na JEDEN ROK (rasiści) skazali
- 2025-10-25 Warszawa => Senior Cloud Engineer - AWS <=
- 2025-10-24 Prawdziwy obraz społeczeństwa Gazy.
- 2025-10-24 Atra_ment Canona GI-41 vs 45 itp...
- 2025-10-24 Warszawa => International Freight Forwarder <=
- 2025-10-24 Co może być gorsze od pożaru elektryka?
- 2025-10-24 Co może być gorsze od pożaru elektryka?
- 2025-10-24 Warszawa => Senior Microsoft Dynamics 365 Business Central Consultant
- 2025-10-24 Bieruń => Spedytor Międzynarodowy (handel ładunkami/prowadzenie flo
- 2025-10-23 brylant
- 2025-10-23 Warszawa => BI Developer / Analityk BI <=
- 2025-10-23 Warszawa => Młodszy Specjalista ds. wsparcia sprzedaży <=
- 2025-10-23 Trójmiasto => Head of Social Media <=
- 2025-10-23 Warszawa => Programista C <=




Deweloperzy hamują sprzedaż mieszkań, ale nie podnoszą cen