-
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
- 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
- www.znanylekarz.pl
- Czy pytanie o sczytywanie stron programami/skryptami to tu?
- Grupy webdevowe
- Jak wydrukować stronę?
- IIS, kilka witryn
- linki <a href="/strona.php"> (ze slashami)
- co rozszerza stronę??
- responsywny akapit <p>
- Czy istnieje jakiś emulator przeglądarek pod Mac'a?
- taka sama konfiguracja dla localhost i produkcji
Najnowsze wątki
- 2024-12-12 Warszawa => Administrator Bezpieczeństwa IT <=
- 2024-12-12 Ostrów Wielkopolski => Trener zespołu sprzedaży Call Center <=
- 2024-12-12 Kraków => Key Account Manager <=
- 2024-12-11 SEP 1 kV E
- 2024-12-11 DNS restrictions are on
- 2024-12-11 wielkie bu
- 2024-12-11 Białystok => Inżynier bezpieczeństwa aplikacji <=
- 2024-12-11 Aku LiPo źródło dostaw - ktoś poleci ?
- 2024-12-11 Warszawa => Specjalista Bezpieczeństwa Informacji <=
- 2024-12-11 Wrocław => Application Security Engineer <=
- 2024-12-11 Warszawa => Analyst in the Trade Development department (experience wi
- 2024-12-11 Lublin => Programista Delphi <=
- 2024-12-11 Motodziennik #305 Nowy ELEKTRYK za 350 złotych miesięcznie? Kreatywne kredytowanie problemów
- 2024-12-11 Warszawa => Spedytor Międzynarodowy <=
- 2024-12-11 Katowice => Key Account Manager (ERP) <=