eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.www › JavaScript - jak działają prototypy?
Ilość wypowiedzi w tym wątku: 1

  • 1. Data: 2015-09-21 13:43:50
    Temat: JavaScript - jak działają prototypy?
    Od: Marek <p...@s...com>

    Witam,

    Czytałem w wielu miejscach teorie na ten temat lecz nigdzie temat nie
    był potraktowany na tyle wyczerpująco abym mógł to pojąć. Nawet po
    dłuższym czasie posługiwania się nimi na zasadzie "zrób tak, bo ktoś tak
    zrobił" odkrywam powalające mnie na kolana, niezrozumiałe właściwości.
    Proszę znawcę tematu o wyjaśnienie mi zasadę ich działania "jak chłop
    krowie".

    Oto przypadek, który ostatnio mnie "zastrzelił".

    testClass(_data)
    {
    var data=_data;

    testClass.prototype.read=function()
    {
    console.log("read",data);
    };
    }

    aaa=new testClass(10);
    aaa.read();
    bbb=new testClass(20);
    aaa.read();

    daje wynik
    10
    20

    Zamiast spodziewanego 10, 10. Czyli wynika z tego, ze data nie jest
    zmienną lokalną dla instancji obiektu lecz jest współdzielona miedzy
    nimi. A teraz uwaga! Zmieniam kod w innym miejscu niż obszar zmiennej:

    testClass(_data)
    {
    var data=_data;

    this.read=function()
    {
    console.log("read",data);
    };
    }

    ... i otrzymuję wynik:

    10
    10

    WTF? O co tu chodzi?

    --
    Pozdrawiam,
    Marek

strony : [ 1 ]


Szukaj w grupach

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: