JavaScript: Gültigkeitsbereich bei eval()

Ja, ich weiß: eval() is evil. Aber um dynamisch nachgeladenen JS-Code auszuführen geht halt kein Weg dran vorbei. Wenn man darin jedoch neue Funktionen definieren will, wird das ganze schnell eklig. Denn wohin (sprich: in welchem Scope) die definiert werden weiß keiner so recht.

Um euch die gleiche mühsame Fehlersuche zu ersparen: Übersicht über die Gültigkeitsbereiche. Fazit ist jedenfalls die Funktionen immer explizit auf window zu definieren:

var myEvalFunc = function() {
    eval('window.myAlert= function() {alert(123);};');
};
myEvalFunc();
myAlert();

Hinterlassen Sie einen Kommentar

Ihr Kommentar*

Name*
Website

Weitere Beiträge zum Thema
Navigationstitel (nav_title) statt normalen Titel (title) im Backend anzeigen
Progressive Web Apps: Nichts für kleine und mittlere Unternehmen (KMU)?
OOP im Sinne von OOP
TemplaVoila: Element UNmappen