Autor Zpráva
DarkMeni
Profil
Zadravím, jak by se mohl provést kód uvnitř proměnné?
Vím o tom že to jde evalem, ale četl jsem snad i někde tady na fóru že ho nemam používat a až do dnes nevim proč, ale když ne tak ne, šel by teda tenhle kód provést jinak než použitím eval?
var funct = "nazev_funkce();";
eval(funct);
function nazev_funkce(){
  alert("Zpracování...");
}
//nebo:
var funct = "alert('Zpracování...');";
eval(funct);
pcmanik
Profil
DarkMeni:
Nejak nechapem vyznam ukladania tych alertov/funkcii do premennych
Jozin
Profil
DarkMeni:
Zdravím, eval nemáš používat, pokud pro něj není důvod. Začátečníci by se tomuto přístupu měli vyhnout. Říká se tedy, pokud to jde udělat jakkoliv jinak, tak to tak udělej, protože eval-u stačí něco podstrčit a ejhle máme škodlivý kód.
Witiko
Profil
DarkMeni:
Ano, šel by provést jinak:
alert("Zpracování...");
Jinak kromě parsování JSON v prohlížečích bez nativní podpory a tvorby JS konzole nemá povětšinou člověk důvod funkci eval() a její obdoby používat.
DarkMeni
Profil
Witiko:
tvorby JS konzole
Jestli jsem tě dobře pochopil tak se v tomhle případě bez eval neobejdu, že?
Witiko
Profil
DarkMeni:
Ano, v takovém případě si stěží dokážu představit jiné řešení.
Darker
Profil
Jozin:
ejhle máme škodlivý kód.
V případě javascriptu jde spíš o přehlednost a snadnou kontrolu kódu. Protože stačí do adresního řádku napsat javascript:[..] a ejhle, máme škodlivý kód...

DarkMeni:
se v tomhle případě bez eval neobejdu
var funct =function() {alert('Zpracování...');};
funct();

Proměnnou funct můžeš libovolně předávat mezi funkcemi.
Witiko
Profil
Darker:
Vyjímáš citaci DarkMeni z kontextu. Reagoval na mojí poznámku o tvorbě javascriptové konzole. V takovém případě se skutečně bez evalu stěží obejde.
Darker
Profil
Witiko:
Omlouvám se, máš pravdu - špatně jsem se podíval. Konzole bez eval, nebo jeho obdoby skutečně udělat nejde.
_es
Profil
Darker:
Konzole bez eval, nebo jeho obdoby skutečně udělat nejde.
Dajú sa ešte dynamicky vytvárať elementy <script>.
Chamurappi
Profil
Reaguji na _es:
Což je v podstatě jen zašmodrchanější obdoba evalu, trpící podobnými nevýhodami.


Reaguji na Darkera:
Konzole bez eval, nebo jeho obdoby skutečně udělat nejde.
Teoreticky jde napsat celý interpreter JavaScriptu v JavaScriptu.
_es
Profil
Chamurappi:
Což je v podstatě jen zašmodrchanější obdoba evalu, trpící podobnými nevýhodami.
Potom je vlastne obdobou evalu aj: <script>kód</script>
Samozrejme, dynamické pridanie elementu do DOM nie je zadarmo, teda niektoré nedostatky nie sú a niektoré sú voči funkcii eval navyše.
Witiko
Profil
_es:
Ano, eval například respektuje kontext ve kterém je spouštěn.
_es
Profil
Witiko:
eval například respektuje kontext ve kterém je spouštěn.
Čo môže byť aj nevýhoda - pre možnosť napríklad vytvorenia lokálnych premenných je beh JS pre prehliadač horšie optimalizovateľný.
Darker
Profil
Ve ksutečnosti jsem právě tendenci evalu chovat se podle jeho prostředí v konzoli příliš neuvítal.

Chamurappi:
Teoreticky jde napsat celý interpreter JavaScriptu v JavaScriptu.
To by bylo něco.

Majkl578:
Zde už byla též otázka zodpovězena, kde je tvoje mazání?

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:

Prosím používejte diakritiku a interpunkci.

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

0