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-29 10:17:59
    Temat: Re: Javascript - jak tworzyć obiekty w strict mode?
    Od: n...@t...net.pl szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    W dniu poniedziałek, 28 września 2015 15:46:46 UTC+2 użytkownik Marek napisał:
    > W dniu 2015-09-28 o 09:02, n...@t...net.pl pisze:
    >
    >
    > > Według spisu instrukcji piszą, że "prototype" daje możliwość
    > > zewnętrznego (zwracam uwagę na - zewnętrznego), a ja dodam sztucznego,
    > > dodawania właściwości do istniejącego bytu (funkcja/klasa).
    >
    > Wiesz... jest znacznie gorzej bo dochodzą takie konstrukcje jak:
    >
    > a.prototype=Object.create(b.prototype)
    > a.prototype.construtor=...
    >
    > które nie wiadomo jak działają a służą do tworzenia dziedziczenia. Czyli
    > co? Zmieniam właściwość "prototyp" dla instancji "a"???? Jakaś bzdura z
    > tego powstaje. Zniesmacza mnie język, w którym trzeba uczyć się zaklęć
    > zamiast stosowania mózgu. A najgorsze w tym jest to, że nie ma
    > dokumentacji, która jasno mówiłaby "zrób tak lub siak" aby dziedziczenie
    > osiągnąć lub "ten język nie ma dziedziczenia". Tymczasem wprowadzają
    > jakieś prototypy nie wiadomo jak działające i każdy zgaduje do czego
    > służą. Nic się kupy nie trzyma. No dobra, wyraziłem swoją frustrację :-)
    > --
    > Pozdrawiam,
    > Marek

    Najpierw musiałbyś powiedzieć do czego dążysz, co chcesz osiągnąć
    bo twoje przykłady świadczą, że się chcesz nauczyć.

    Musisz trzymać się konwencji języka.


    Nie można napisać:

    function f1()
    {
    this.a=null;
    f1.prototype.b=null // dodajesz zmienną/właściwość - "b"
    // (w tym miejscu takie dodawanie to trochę nie teges)
    }

    bo prawidłowo to jest tak:
    function f1()
    {
    this.a=null;
    this.b=null;
    }

    var o1=new f1(); // tworzysz obiekt "o1"
    o1.a=1; // nadajesz wartości
    o1.b=12;


    f1.prtotyp.c=null; // teraz dodajesz nową zmienną/właściwość:
    w1.c=123;


    var o2=new f1(); // a teraz tworzysz nowy obiekt "o2"
    o2.c=1234;

    alert(o1.c+' i '+02.c);


    Sztucznie można pokazać to tak, że funkcja/konstruktor/szablon do powielania
    f1() ma teraz taką treść:

    function f1()
    {
    this.a=null;
    this.b=null;
    this.c=null;
    }


    I co ci się kłóci.
    Należy trzymać się konwencji języka i stosując tę konwencję kombinować
    z kopiowaniem (dziedziczeniem).


    Andrzej.

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: