eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.wwwJavascript - jak tworzyć obiekty w strict mode?Re: Javascript - jak tworzyć obiekty w strict mode?
  • 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

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: