Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 15. diel - Funkcie 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
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
Odpovedá na Jan Tesař
Neaktivní uživatel:19.7.2019 11:05

Řekl bych že problém bude v tom <code>í</code> na řádku

document.write("Ahoj, vřele tě tu vítám " + jmeno + prijmení + "!");
Odpovedať
Neaktivní uživatelský účet
Avatar
Jan Tesař
Člen
Avatar
Odpovedá na Neaktivní uživatel
Jan Tesař:19.7.2019 13:08

no jasně, díky, :-)

Avatar
Lubor Pešek
Člen
Avatar
Lubor Pešek:5.3.2020 15:13

No nevím, možná se to za ta léta změnilo, ale JavaScript už objektově dovede volat funkci i před tím, než ji definuješ, takže dneska už neplatí

Funkci nyní musíme zavolat. Můžeme to samozřejmě udělat až potom, co ji deklarujeme, jinak by ji prohlížeč neznal:

Je to takový malinkatý detail, ale proč nemít perfektní stránky, když můžeš:)
Samozřejmě tohle neberu jako fatální katastrofu, protože je jasné, že ve skutečném projektu se funkce píší úplně separátně. Ale nemusel bys tímhle mást nováčky:)

Odpovedať
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
Jindřich Máca
Tvůrce
Avatar
Odpovedá na Lubor Pešek
Jindřich Máca:6.3.2020 22:36

Hele, celá ta formulace je nějaká divná... Nejdřív ji "musíme" zavolat, pak ji najednou "můžeme" zavolat atd. :-D Nicméně, jak píšeš, chtělo by to trochu uvést na pravou míru.

  • Pokud deklarujeme klasickou funkci, tak bude její definice automaticky hoistovaná na záčatek a tudíž je jedno, jestli její volání napíšeme před nebo po její definici:
example();

function example() {
    console.log('Hello World!');
}

example();
  • Ovšem toto neplatí u funkcí uložených do proměnných, arrow funkcí apod.

Doufám, že je to takhle jasnější. ;-)

Avatar
Lubor Pešek
Člen
Avatar
Odpovedá na Jindřich Máca
Lubor Pešek:6.3.2020 23:38

Snad chápeš, že nechci rýpat nebo tady dělat machra....
Jen mi jde o to, aby začátečníci nebyly z toho úplně zmatení. A jak jsem psal - proč se nezabývat i detaily? Tento portál je skvělý vzor fungující komunity, tak se můžeme zabývat i prkotinami:)

Odpovedať
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
Martin Bušek:17.4.2020 10:13

Tak zatím sem se držel. Ale Callback mi způsobil Brain Freeze :D Vůbec se nechytám.

Avatar
Jiří Hruška:30.10.2020 17:13

Ahoj, dělá mi starost jedna velmi důležitá věc u funkcí a proto nemůžu napsat pořádný smysluplný kód.

Proč tohle funguje jak má

let ctvrty = document.getElementById("btn4");
ctvrty.onclick = () => klik4();

A tohle ne?

let ctvrty = document.getElementById("btn4");
ctvrty.onclick = () => klik4;

Pro lepší pochopení: Proč u zavolání běžné funkce to funguje opačně?

let prvni = document.getElementById("btn1");
prvni.onclick = klik1;

function klik1(){
 prvni.innerHTML = "Zakliknuto!";
}

Díky za odpovědi, teda jestli jste mě pochopili.
a navíc jaký je rozdíl mezi funkci např. myFunction; a myFunction() ?

Avatar
Milan Turyna
Tvůrce
Avatar
Odpovedá na Jiří Hruška
Milan Turyna:30.10.2020 19:09

Odpověď na druhý dotaz, pokud ho chápu správně: myFunction() funkci zavolá a myFunction vrátí samotný kód funkce, pro příklad:

const func = function() {
  return 1;
}

console.log(func); //function () { return 1; }
console.log(func()) //1

Odpověď na první dotaz: kód pravděpodobně nefunguje, kvůli tomu že vytváříš funkci která vrací kód funkce, místo toho aby vracela výsledek volání funkce.

Editované
Avatar
Odpovedá na Milan Turyna
Jiří Hruška:30.10.2020 21:06

děkuji, rada nad zlato. Taky me mohlo napadnout že si všechno najdu v konzoli.

Avatar
Yuriy Tretyachenko:6.2.2021 14:51

v callbacku

function zavolej_funkci(funkce, jmeno) {
    document.write("Jsem funkce a volám funkci, která mi přišla do parametru v proměnné.<br />");
    document.write("Jako parametr jí dám jmeno, které mi přišlo jako 2. parametr.<br />");
    funkce(jmeno);

nepochopil jsem vyrazu funkce(jmeno);

Editované
Posledné komentáre sú na spodnej časti poslednej stránky.
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.

Zobrazené 10 správy z 75.