Vysvětlení scriptu – JavaScript, AJAX, jQuery – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Vysvětlení scriptu – JavaScript, AJAX, jQuery – Fórum – Programujte.comVysvětlení scriptu – JavaScript, AJAX, jQuery – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
robb
~ Anonymní uživatel
3 příspěvky
31. 1. 2016   #1
-
0
-

Zdravím Vás, chtel bych poprosit o vysvetleni scriptu:

function showattribs(e) {                                               // co zde znamená to (e) jakobyproměnnou??
    var e = document.getElementById("braingialink");
    var elemList = "";
    for (var element in e) {
        var attrib = e.getAttribute(element);
        elemList = elemList + element + ": " + attrib + "\n";  // proč je zde v proměnné elemList opět elemList +.....
    }
    alert(elemList);
}

Autor knihy Javascript step by step to nikde nevysvetlil, dekuji. R.

Nahlásit jako SPAM
IP: 78.156.128.–
Reklama
Reklama
ondrej39+1
Věrný člen
31. 1. 2016   #2
-
0
-

#1 robb
Do e se přiřadí výsledek funkce document.getElementById('braingialink'), což bude pravděpodobně nějaký HTML element, který má nadefinované id='braingialink'. Pomocí cyklu for in jsi schopen iterovat přes veškeré atributy získaného objektu, který má uložený v proměnné e. Jednotlivé elementy a jejich atributy si ukládáš do proměnné elemList. To elemList + elemList je tam proto, abys při dalším průchodu cyklem nepřišel o předchozí získaná data, ale nová data se připnula za aktuální obsah.

Po skončení cyklu se pustí funkce alert s parametrem elemList, v němž máš uložené jedtlivé elementy a jejich atributy v HTML elementu s id 'braingialink'.

Edit: Nvm, jsem kokot, nevšiml jsem si začátku metody, že se tam předává e i jako parametru. Viz Kitův příspěvek.

Nahlásit jako SPAM
IP: 79.141.243.–
Inject all the dependencies!
Kit+11
Guru
31. 1. 2016   #3
-
0
-

#2 ondrej39
Obávám se, že parametr e je tam zcela k ničemu, neboť je následujícím řádkem zlikvidován.

Nahlásit jako SPAM
IP: 194.228.68.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Kit+11
Guru
31. 1. 2016   #4
-
0
-

#1 robb

 

V tom skriptu mi nedává smysl pár věcí:

  • formální parametr e, který je na následujícím řádku přepsán
  • výsledkem document.getElementById("braingialink") není pole, ale element. Proč se s tím zachází, jako kdyby to bylo pole?
  • místo cyklu existuje mnohem hezčí reduce()

Nahlásit jako SPAM
IP: 194.228.68.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
peter
~ Anonymní uživatel
2551 příspěvků
1. 2. 2016   #5
-
0
-

http://programujte.com/forum/vlakno/30545-vysvetleni-kodu-casti-funkce/

Nahlásit jako SPAM
IP: 2001:718:2601:26c:e90d:da...–
Kit+11
Guru
1. 2. 2016   #6
-
0
-

#1 robb
Jestli jsem tu funkci pochopil, tak by měla dělat zhruba totéž, co tohle: 

function showattribs() {
    var e = document.getElementById("braingialink");
    var elemList = e.reduce(function(buffer, element) {
        return buffer + element + ": " + element.getAttribute(element) + "\n";
    }
    alert(elemList);
}

Je tam vidět porušení SRP stejně jako v předchozím příkladu, proto by bylo možná vhodné tam ten parametr e vložit následovně: 

function showattribs(e) {
    var elemList = e.reduce(function(buffer, element) {
        return buffer + element + ": " + element.getAttribute(element) + "\n";
    }
    alert(elemList);
}

// volání
showattribs(document.getElementById("braingialink"));

Tím se tato funkce stane opakovaně použitelnou.

Nahlásit jako SPAM
IP: 194.228.68.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 12 hostů

Podobná vlákna

Chyba ve scriptu — založil Kall_Ell

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý