Mikuláš je tady! Získej 90 % extra kreditů ZDARMA s promo kódem CERTIK90 při nákupu od 1199 kreditů. Pouze do neděle 7. 12. 2025! Zjisti více:
NOVINKA: Staň se datovým analytikem od 0 Kč a získej jistotu práce, lepší plat a nové kariérní možnosti. Více informací:

Diskuze – Lekce 5 - Tvorba OOP diáře v JavaScriptu

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Nejnovější komentáře jsou na konci poslední stránky.
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.

Avatar
Odpovídá 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

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.
Avatar
Jakub Frei
Člen
Avatar
Odpovídá 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....

Avatar
Lubor Pešek
Člen
Avatar
Odpovídá 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ž.
Odpovědět
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
Odpovídá 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.

Avatar
Odpovídá 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. 😉

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.

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.

Odpovědět
"Stay curious, learn every day!"
Avatar
Sergey Gorbachev:16.1.2024 23:06

Lorem ipsum dolor sit amet, consectetuer adipiscing elit.

Nejnovější komentáře jsou na konci poslední stránky.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 11.