Autor | Zpráva | ||
---|---|---|---|
weroro Profil |
#1 · Zasláno: 20. 7. 2015, 11:39:48
Ahoj,
V IE9 mi z nejakého dôvodu, nechce prijať tretí argument funkcie setInterval. var mojInterval = setInterval(function (fc) { console.log(typeof fc); }, 1000, fc); undefined . Viete prosím poradiť?
Ďakujem. |
||
Radek9 Profil |
#2 · Zasláno: 20. 7. 2015, 12:02:17
weroro:
IE to umí až od verze 10. Pokud ti to stačí od verze 9, použij bind: var mojInterval = setInterval(function (fc) { console.log(typeof fc); }.bind(null, fc), 1000); |
||
weroro Profil |
#3 · Zasláno: 20. 7. 2015, 12:43:19
Radek9:
Vynikajúce, ďakujem za tvoj čas a riešenie. |
||
_es Profil |
weroro:
O čo sa tým kódom vlastne snažíš? Ak je v tom kóde dostupná premenná fc ako tretí argument setInterval , tak môže byť dostupná aj v tej vnorenej funkcii. Načo ju „prekrývaš“ lokálnou premennou funkcie s rovnakým názvom? Nestačí jednoduché?:
var mojInterval = setInterval(function(){console.log(typeof fc)}, 1000); |
||
weroro Profil |
_es:
Ten interval mám ešte v jednej funckii, do ktorej argumentu predávam funkciu a túto funkciu potrebujem ešte predať do toho intervalu. function onEnterFrame (fc, intervalName) { if (intervalName == undefined) { intervalName = "EnterFrame"; } if (typeof fc == "function" && !global[intervalName + "oef"]) { fps = Math.floor(fps); if (fps > 65) { fps = 65; } else if (fps < 1) { fps = 1; } if (fps > 0) { var interval = Math.ceil(1000 / fps); global[intervalName] = setInterval (function (fc) { fc (); update (); }.bind(null, fc), interval); global[intervalName + "oef"] = true; } } else if ((typeof fc == "string" && fc == "delete") || fc === null) { clearInterval(global[intervalName]); global[intervalName] = null; delete global[intervalName]; global[intervalName + "oef"] = null; delete global[intervalName + "oef"]; } } |
||
Chamurappi Profil |
#6 · Zasláno: 22. 7. 2015, 14:53:10
Reaguji na werora:
Nerozumím, k čemu to potřebuješ. Na co tam máš ten bind ? Proč fc potřebuješ předávat dovnitř funkce, když ta vidí na to vnější fc ?
|
||
weroro Profil |
#7 · Zasláno: 22. 7. 2015, 15:05:35
Chamurappi:
Keď tak teraz na to pozerám, už ani ja neviem prečo to chcem ak sa dá k tej funkcii dostať takto jednoducho. |
||
Radek9 Profil |
#8 · Zasláno: 22. 7. 2015, 21:22:25
weroro:
Původně jsem předpokládal, že tohle je vážně jen ukázka a že ta funkce je třeba definována jinde a k proměnné nemá přístup. Jestli je to ale takhle, tak to opravdu nepotřebuješ. Má to smysl, pokud mám někde definovanou univerzální funkci a tu pouštím v několika intervalech nebo timeoutech s různými parametry. |
||
Časová prodleva: 9 let
|
0