Autor Zpráva
Pietroo
Profil *
Zdravím, rád bych porozuměl následujícímu kódu

Array.prototype.reverse.call(co.parent().prevAll()).clone().appendTo(".menu ul.topmenu");



Resp. mi jde spíše o toto:

Array.prototype.reverse.call


Díky za objasnění, případný link s tématikou
Yur4Y
Profil
Argument metódy call, čiže co.parent().prevAll(), je niečo, čo vyzerá ako pole (obsahuje nejaké prvky pod číselnými indexami a má aj vlastnosť length), ale nie je priamo poľom, teda nededí metódy z Array.prototype, medzi ktoré patrí aj reverse, preto sa priamo nedá použiť co.parent().prevAll().reverse(). Preto sa zavolá metóda reverse takým spôsobom, že sa vytiahne z Array.prototype (je možné takisto použiť napríklad zápis [].reverse, čím by sa vytiahla tá istá metóda z konkrétneho poľa), a metódou call sa metóde reverse nastaví this tak, aby reverse pracovala s co.parent().prevAll().
Witiko
Profil
Pietroo:
Prototype je dostupná vlastnost každé funkce, která umožňuje definovat defaultní sadu atributů instance objektu pakliže je funkce použita jako konstruktor.

function konstruktor() {}
konstruktor.prototype.ahoj = "světe";

var a = new konstruktor();
alert(a.ahoj); // světe


Call je metoda přístupná přes prototyp objektu Function veškerým funkcím a dovoluje funkce volat pod jiným kontextem - tzn. definovat jaká bude hodnota this v dané funkci. Volání:
funkce.call(kontext, argument1, argument2, argument3 ...)

Funkce apply dělá to samé až na to, že přijímá argumenty jako pole, což je občas obzvláště užitečné pokud předem nevíme, kolik argumentů předáváme:
funkce.apply(kontext, [argument1, argument2, argument3 ...])

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: