2017-02-20 5 views
-1

Wir alle wissen, dass die Verwendung von eval() mit Gefahr brodelt und sollte wirklich nie verwendet werden. Aber stellen wir uns vor, Sie haben die vollständige Kontrolle über die Eingabe in Eval und es kann sicher verwendet werden.Kann eine Funktion, die mit JavaScript generiert wurde, optimiert werden?

Meine Frage ist, wenn ich eine Funktion mit eval() wie unten erzeugen würde und dann die generierte Funktion viele Male aufrufen würde, würde dies Vorteile von Compiler/Laufzeitoptimierungen in Browserlaufzeiten wie sagen, V8?

eval('var myFunction = function() { return 1 * 2/3 }') 
myFunction() 

Antwort

1

Ich würde eher vermuten, dass es sich negativ auf die Laufzeit hat, da die Funktion analysiert wird, wenn eval() aufgerufen wird, nicht, wenn das Dokument geladen wird.

Optimierungen durch die Javascript-Engine (wie V8) werden nicht durch die Art, wie eine Funktion generiert wird, beeinflusst.

+0

Danke für Ihre Antwort. Ich denke ich verstehe. Das Generieren der Funktion wird langsamer mit eval, da die Kompilierung verzögert ist, aber wenn die Funktion irgendwo gespeichert und später verwendet wird, kann sie wie jede andere Funktion optimiert werden. – ChrisBellew

+0

@ChrisBellew Sie können Ihren eigenen Kommentar bearbeiten. Bitte fügen Sie kein anderes hinzu, um einen Tippfehler zu beheben. –

Verwandte Themen