eval-Methode (JScript)
Aktualisiert: November 2007
Wertet JScript-Code aus und führt diesen aus.
function eval(codeString : String [, override : String])
Argumente
codeString
Erforderlich. Eine Zeichenfolge, die gültigen JScript-Code enthält.override
Optional. Eine Zeichenfolge, die bestimmt, welche Sicherheitsberechtigungen auf den Code in codeString angewendet werden.
Hinweise
Die eval-Funktion ermöglicht die dynamische Ausführung von JScript-Quellcode.
Der an die eval-Methode übergebene Code wird im selben Kontext wie der Aufruf der eval-Methode ausgeführt. Beachten Sie, dass neue Variablen oder Typen, die in der eval-Anweisung definiert werden, im umschließenden Programm nicht sichtbar sind.
Der an die eval-Methode übergebene Code wird in einem beschränkten Sicherheitskontext ausgeführt, es sei denn, die Zeichenfolge "unsafe" wird als zweiter Parameter übergeben. Der beschränkte Sicherheitskontext trägt dazu bei, den Zugriff auf Systemressourcen, z. B. das Dateisystem, das Netzwerk oder die Benutzeroberfläche, zu verhindern. Wenn der Code versucht, auf diese Ressourcen zuzugreifen, wird eine Sicherheitsausnahme ausgelöst.
Wenn als zweiter Parameter von eval die Zeichenfolge "unsafe" übergeben wird, wird der an die eval-Methode übergebene Code im selben Sicherheitskontext wie der aufrufende Code ausgeführt. Beim zweiten Parameter wird die Groß- und Kleinschreibung berücksichtigt, d. h., die Zeichenfolgen "Unsafe" oder "UnSAfE" überschreiben nicht den beschränkten Sicherheitskontext.
Sicherheitshinweis: |
---|
Verwenden Sie eval im nicht gesicherten Modus nur, um Codezeichenfolgen aus vertrauenswürdigen Quellen auszuführen. |
Beispiel
Der folgende Code initialisiert beispielsweise die Variable mydate als Testdatum oder aktuelles Datum, je nachdem, welchen Wert die doTest-Variable hat:
var doTest : boolean = true;
var dateFn : String;
if(doTest)
dateFn = "Date(1971,3,8)";
else
dateFn = "Date()";
var mydate : Date;
eval("mydate = new "+dateFn+";");
print(mydate);
Ausgabe dieses Programms:
Thu Apr 8 00:00:00 PDT 1971