eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.wwwJavascript - jak tworzyć obiekty w strict mode?Re: Javascript - jak tworzyć obiekty w strict mode?
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!.POSTED!not-for-mail
    From: Marek <p...@s...com>
    Newsgroups: pl.comp.www
    Subject: Re: Javascript - jak tworzyć obiekty w strict mode?
    Date: Thu, 01 Oct 2015 19:27:31 +0200
    Organization: ICM, Uniwersytet Warszawski
    Lines: 63
    Message-ID: <mujqee$dk7$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>
    <1...@4...net>
    <mtojfs$lci$1@news.icm.edu.pl>
    <8...@g...com>
    <mubgc4$rhm$1@news.icm.edu.pl>
    <d...@g...com>
    NNTP-Posting-Host: 89-69-222-145.dynamic.chello.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=iso-8859-2; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: news.icm.edu.pl 1443720463 13959 89.69.222.145 (1 Oct 2015 17:27:43 GMT)
    X-Complaints-To: u...@n...icm.edu.pl
    NNTP-Posting-Date: Thu, 1 Oct 2015 17:27:43 +0000 (UTC)
    User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:31.0) Gecko/20100101
    Thunderbird/31.6.0
    In-Reply-To: <d...@g...com>
    Xref: news-archive.icm.edu.pl pl.comp.www:403052
    [ ukryj nagłówki ]

    W dniu 2015-09-29 o 10:17, n...@t...net.pl pisze:

    > I co ci się kłóci.

    Już pokazuję co w "Twoim" podejściu się kłóci.
    Mamy w klasie bazowej jak i pochodnej tak samo nazwaną zmienną (this.a):

    function SuperClass(a,b)
    {
    this.a=a;
    this.b=b;
    }

    SuperClass.prototype.parametry=function()
    {
    console.log("parametry", this.a, this.b);
    };

    function SubClass(a,b)
    {
    this.a=100;
    SuperClass.call(this,a,b);
    }

    SubClass.prototype=Object.create(SuperClass.prototyp
    e);

    var obj=new SubClass(20,30);
    obj.parametry();
    console.log(obj.a);

    Otrzymujemy:
    parametry 20 30
    20

    Spodziewałbym się:
    parametry 20 30
    100

    Wygląda na to, że zmienne używane w klasie bazowej są:
    a) publiczne (czego nie chcę, ale mogę to jeszcze przełknąć)
    b) nadpisywane zmiennymi z klasy potomnej!!!

    Pisząc klasę potomną muszę zatem uważać aby nie powtórzyć nazwy zmiennej
    z klasy bazowej. JS pozwala na tworzenie zmiennych gdziekolwiek w kodzie
    więc w życiu nie dojdę jakie nazwy zmiennych są zastrzeżonymi. Mało tego
    - jeśli w późniejszym czasie programista klasy bazowej dorzuci kolejną
    zmienną to może rypnąć się cały projekt bo programiści klas potomnych
    mogą już używać takiej nazwy zmiennej.

    Nie wyobrażam sobie jak można nad tym zapanować w takim podejściu.

    > Należy trzymać się konwencji języka i stosując tę konwencję kombinować
    > z kopiowaniem (dziedziczeniem).

    JS nie ma chyba nigdzie opisanej konwencji języka albo tych konwencji
    jest tyle ilu programistów. Jeśli chcę się nauczyć C++, to kupuję
    dowolny podręcznik i mam konwencję. W JS mogę co najmniej 3 "konwencje"
    OOP przytoczyć i żadna z nich nie działa do końca.


    --
    Pozdrawiam,
    Marek

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: