Vianoce v ITnetwork sú tu! Dobí si teraz kredity a získaj až 80 % extra kreditov na e-learningové kurzy ZADARMO. Zisti viac.
Hľadáme nové posily do ITnetwork tímu. Pozri sa na voľné pozície a pridaj sa k najagilnejšej firme na trhu - Viac informácií.

Diskusia – 5. diel - Tvorba OOP diáre v JavaScripte

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Avatar
Filip Sáblík:14.9.2020 11:43

Ahoj, všechno funguje, jen nechápu, proč musím this.vypisZaz­namy(); použít v metode nastavUdalosti a nejde to pouzit v konstruktoru.

 
Odpovedať
14.9.2020 11:43
Avatar
Odpovedá na Filip Sáblík
Slavomír Ďurík:21.1.2021 14:40

Aho, myslim ze preto, lebo by sa volala zakazdym ked vznikne instancia objektu. Takto je naviazane len na akciu .onclick a vykona sa len ked kliknes na tlacidlo

 
Odpovedať
21.1.2021 14:40
Avatar
Jaroslav Drobek:21.6.2022 6:36

Hodnocení:

  • "vypadat...způ­sobem" - ehm, ehm..vzhled ani češtinu nebudeme řešit.
  • Nechce se mi hledat, ale o změně kontextu na "this obsahuje instanci třídy" bych v "Základních konstrukcích JavaScriptu" nic neočekával.
 
Odpovedať
21.6.2022 6:36
Avatar
Jakub Frei
Člen
Avatar
Odpovedá na Filip Sáblík
Jakub Frei:22.6.2022 11:43

Mrzí mě, že ti za celou tu dobu odpověděl jen jeden člověk, chtělo by to větší odezvu vývojářů v komentářích....

 
Odpovedať
22.6.2022 11:43
Avatar
Lubor Pešek
Člen
Avatar
Odpovedá na Jakub Frei
Lubor Pešek:28.7.2022 15:39

Ale když odpoví jednoznačně a správně, tak co k tomu víc dodat?
Navíc koukám, že kurzy o JS jako takový tady moc nefrčí. Minimálně to jde vidět na testech - docela málo lidí je absolvovalo.

  • ber to i tak, že zkušení programátoři nemají potřebu projíždět tutoriály. Maximálně jako já, který má zkušenost v jiném jazyce a učí se nový jazyk, tak si to projde, ale jinak se spíš budou zajímat pouze o issue na forum, když už.
Odpovedať
28.7.2022 15:39
Existují dva způsoby, jak vyřešit problém. Za prvé vyhoďte počítač z okna. Za druhé vyhoďte okna z počítače.
Avatar
Odpovedá na Filip Sáblík
Jiří Hruška:17.11.2022 11:08

Ahoj, jsem jen začátečník, ale dle mého to je proto, protože to provede metodu vypisZaznamy() až ve chvíli, kdy to přidáš na .onclick. Pokud by to bylo v konstruktoru, tak se ta metoda zavolá při vytváření konstruktoru (kdy tam záznamy nejsou) a když budeš chtít přidat nový záznam, tak už se k ní nedostaneš a záznam se nevypíše.

 
Odpovedať
17.11.2022 11:08
Avatar
Odpovedá na Filip Sáblík
Petra Mollerová:18.6.2023 21:14

V metodě nastavUdalosti se ukládá nový záznam do pole, tak je vhodné následně aktualizovat výpis o tento nově přidaný záznam. 😉

 
Odpovedať
18.6.2023 21:14
Avatar
Daniel Zábojník:14.9.2023 14:47

Děkujeme za podněty. Na aktualizace kurzu pracujeme.

 
Odpovedať
14.9.2023 14:47
Avatar
Edita Karlovská:21.12.2023 10:39

Kalendář se bohužel zobrazuje v angličtině, a to i v případě, když si načtu stažený kód přímo z této lekce. V čem je problém? Díky.

 
Odpovedať
21.12.2023 10:39
Avatar
Jan Gritzbach:28.12.2023 20:42

Mám dotaz ohledně problému s kontextem klíčového slova "this".

V článku řešíte situaci pomocí arrow function, která kontext this nezmění, a pod slovem this tedy nadále zůstane uložena původní reference na instanci diáře.

Napadlo mě alternativní řešení, a sice že by si mohl diář referenci na sebe samého uložit do nějaké pomocné proměnné (nazvané např. self) ještě předtím, než se kontext this změní.

Kód metody nastavUdalosti() by mohl vypadat takto:

nastavUdalosti() {
    const self = this    // právě zde nám pomocná proměnná podrží odkaz na instanci diáře

    this.potvrditButton.onclick = function() {
        // zde už nepoužíváme slovo this, ale self
        const zaznam = new Zaznam(self.nazevInput.value, self.datumInput.value);
        self.zaznamy.push(zaznam);
        self.vypisZaznamy();
    };
}

Zkoušel jsem to otestovat a zdá se, že to funguje.
Jde o alternativní možnost anebo to není správný přístup?
Děkuji.

Odpovedať
28.12.2023 20:42
"Stay curious, learn every day!"
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zatiaľ nikto nevložil komentár - buď prvý!