Autor | Zpráva | ||
---|---|---|---|
tester Profil * |
#1 · Zasláno: 18. 8. 2016, 11:41:44 · Upravil/a: Moderátor (editace znemožněna) 18. 8. 2016, 14:14:47
Mám funkci která se volá na zavolání události click.
Zevnitř této funkce pak volám funkci printMe(null); Uvnitř PrintMe přidělím proměnnou e jako událost dočasně uloženou v jiné proměnné. Pak si připravím objekt s argumentama: var arguments = {} arguments.wrapper = extractor.data.defaults.wrapper; arguments.stylesheet = extractor.data.defaults.stylesheet; arguments.styles = !arguments.stylesheet ? "<style id=styles>div#content { color: " + extractor.data.defaults.color + "; background-color: " + extractor.data.defaults.bgcolor + "; font-family:'" + font + "'; font-size:" + size + "; font-weight: " + weight + ";}\n\r" + "</style>\n\r" : ""; Pak zavolám funkci Start(e, arguments); V debuggeru Firefoxu (Toolbox) zastavím uvnitř té funkce a dívám se co obsahuje aruments: ![]() Nejde mi dohromady proč arguments obsahuje dvě vlastnosti které jsem v tom objektu neplánoval. Data která jsem do arguments uložil se nachází pod členem 1. Najel jsem kurzorem myši na slovo arguments: function (e, arguments) tak nevím jestli ten Toolbox opravdu zobrazuje to co je v arguments nebo to omylem zobrazuje první a druhý argument funkce (bug Toolboxu) Tak už to chápu. arguments je v javascriptu klíčové slovo vracející argumenty funkce. Moderátor Petr ZZZ: Titulek „Proč se tohle děje?“ nevystihoval podstatu dotazu. Příště zkus prosím vymyslet lepší.
|
||
juriad Profil |
#2 · Zasláno: 18. 8. 2016, 11:54:54
Arguments object
Objekt arguments obsahuje všechny argumenty funkce. Firefox se nejspíš nějak zbláznil, mě se to ve Firebugu chová očekávaně (tedy že arguments je Object a obsahuje jen to, co jsi do něj vložil). V každém připadě silně doporučuji přejmenovat arguments třeba na args .
|
||
Časová prodleva: 9 let
|
0