NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 15 - Funkce 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
Avatar
Odpovídá 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í + "!");
Odpovědět
19.7.2019 11:05
Neaktivní uživatelský účet
Avatar
Jan Tesař
Člen
Avatar
Odpovídá na Neaktivní uživatel
Jan Tesař:19.7.2019 13:08

no jasně, díky, :-)

 
Odpovědět
19.7.2019 13:08
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:)

Odpovědět
5.3.2020 15:13
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
Odpovídá 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ší. ;-)

 
Odpovědět
6.3.2020 22:36
Avatar
Lubor Pešek
Člen
Avatar
Odpovídá 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:)

Odpovědět
6.3.2020 23:38
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.

 
Odpovědět
17.4.2020 10:13
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() ?

 
Odpovědět
30.10.2020 17:13
Avatar
Milan Turyna
Tvůrce
Avatar
Odpovídá 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.

Editováno 30.10.2020 19:10
Odpovědět
30.10.2020 19:09
Řeš pouze to, co dokážeš ovlivnit.
Avatar
Odpovídá 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.

 
Odpovědět
30.10.2020 21:06
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);

Editováno 6.2.2021 14:52
 
Odpovědět
6.2.2021 14:51
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 75.