Diskuze: Argument pre callback
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 10 zpráv z 10.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
Předpokládám, že funkce 'functionTwo' zavolá svůj třetí argument pomocí kulatých závorek () a předá ji nějakou hodnotu, možná právě svůj první argument... Takže hodnota x se dostane do funkce až při a podle volání funkce.
niekto kto by vedel potvrdit co pise taskkill?
Tak se koukni sem... https://www.dashingd3js.com/…ck-functions
Je to tam celé rozebrané do posledního puntíku...
Třeba můj skill v jsku? Nebo fakt, že tu o jsku mám pár článků. Nebudu ti říkat něco co není 100% tak jak říkám.
Upresnim svuj prispevek, potvrdit chces co? Ze to takhle skutecne v JS jde? Na to jsou tu clanky, na to nemusis nutne verit me. Ja jsem odpovidal na to, co asi dela kod z ukazky. To ti nikdo krome autora kodu nepotvrdi.
konkrétně přesně tuhle funkci řeší můj odkaz... krok po kroku...
Při vytvoření funkce, vložíš jen další argument, který zavoláš pouze s závorky. A je jen na tobě jestli bude funkce veřejná nebo anonymní. V obou případech se to chová uvnitř vytvářené funkce stejně.
// Námi vytvořená funkce
function mojeFunkce(callback){
// Uvnitř jej zavolám jako název proměnné, akorát je obalím kulatými závorky, kvůli tomu že vlastně je to funkce. A uvnitř již předávám parametry
return callback("pokus");
}
// Vytvořím se nějakou externí funkce
function externi(vstup){
alert(vstup);
}
// A teď mojí funkci zavolám pomocí veřejné funkce
// Pozor, při vkládání funkce se vloží jen název bez kulatých závorek, neboť předávání argumentů proběhne až uvnitř, při volání callbacku
mojeFunkce(externi);
// A teď to samé akorát s anonymní funkcí
// Proměnná vstup co je uvnitř, se předá uvnitř mojeFunkce, to je přesně to co se skrývá v závorkách. Tak že hodnota pokus předaná v callbacku se uloží nyní do proměnné vstup.
mojeFunkce(function(vstup){
alert(vstup);
});
Filip, vieš mi pls. vysvetliť prečo keď funkcia "externi" ocakava argument "vstup", tak pri volani z mojeFunkce(externi); sa tej funkcii externi pri volaní dá co za hodnotu pre argument "vstup"
ďakujem, tvoj popis mi najviac ozrejmil vec 
Funkce externí samozřejmě nemusí očekávat žádný vstup, to potom záleží hodně na tom co callback předává (pokud něco vůbec předává) a nebo jestli ty s tím vstupním argumentem chceš pracovat.
Pěkným příkladem je třeba na funkce na eventy - tedy document.addEventListener();
Pokud nepotřebuješ cyklit nebo vytvářet více událostí, tak nepotřebuješ pracovat s callbackem
// Načtení objektu s ID = test
var object = document.querySelector("#test");
// A vytvoření události na kliknutí
object.addEventListener("click", function(){
alert("Klikl si na #test");
});
V případě že bychom addEventListener dávali do cyklu, tak použijeme ve funkci parametr který nám funkce addEventListener předá do anonymní funkce.
// Výběr všech prvků s třídou test
var object = document.querySelectorAll(".test");
// A následný cyklus
for(var i = 0; i < object.length; i++){
var trida = object[i];
trida.addEventListener("click", function(event){
var e = event.target;
// Při kliknutí změníme HTML kód
e.innerHTML = "Test";
/*
Nemůžeme přistoupit přes object[i].innerHTML,
neboť v tomto případě hraje roli zapouzdření funkce,
a proto nám addEventListener vrací parametr,
tedy objekt který který je shodný s object[i]
*/
});
}
Stačí takhle? Nebo jsem úplně mimo mísu? 
Zobrazeno 10 zpráv z 10.
