Autor | Zpráva | ||
---|---|---|---|
Pietroo Profil * |
#1 · Zasláno: 24. 3. 2011, 16:13:26
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 |
#2 · Zasláno: 24. 3. 2011, 18:26:04
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 |
#3 · Zasláno: 25. 3. 2011, 08:46:35 · Upravil/a: Witiko
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 ...]) |
||
Časová prodleva: 13 let
|
0