Heim  >  Artikel  >  Web-Frontend  >  Wie konvertiere ich einen String in eine Funktion in JavaScript?

Wie konvertiere ich einen String in eine Funktion in JavaScript?

WBOY
WBOYnach vorne
2023-09-11 11:01:111714Durchsuche

如何在 JavaScript 中将字符串转换为函数?

Wir erhalten einen String und müssen ihn in JavaScript in eine Funktion umwandeln. Manchmal erhalten wir einen mathematischen oder funktionalen Ausdruck in Form einer Zeichenfolge, und die Ausführung des Ausdrucks erfordert die Konvertierung der Zeichenfolge in einen Funktionsausdruck. In diesem Tutorial lernen wir verschiedene Möglichkeiten kennen, eine bestimmte Zeichenfolge in eine Funktion oder einen mathematischen Ausdruck umzuwandeln.

Verwenden Sie die eval()-Methode

Die Methode

eval() nimmt einen Ausdruck als Parameter und wertet den Ausdruck aus. Wenn wir beispielsweise die Zeichenfolge „2 + 2“ als Argument an die Methode eval() übergeben, gibt sie 4 zurück, wenn der mathematische Ausdruck 2+2 ausgewertet wird.

Es wertet auch Funktionsausdrücke wie mathematische Ausdrücke aus.

Grammatik

Benutzer können die Methode eval() gemäß der folgenden Syntax verwenden, um einen String in eine Funktion in JavaScript umzuwandeln.

eval("var func = () => { output.innerHTML = 'Hello Users!'; }";);
func(); 

In der obigen Syntax übergeben wir die Funktionszeichenfolge als Parameter der eval()-Methode.

Beispiel 1

Im folgenden Beispiel haben wir eine Zeichenfolge erstellt, die einen Funktionsausdruck enthält. Der Funktionsausdruck gibt eine Nachricht auf der Webseite aus.

Danach haben wir die Zeichenfolge als Parameter an die Methode eval() übergeben und dann die Funktion func() ausgeführt, genau wie beim Aufruf einer normalen Funktion.

Die Funktion

func() liefert die gleiche Ausgabe wie eine normale Funktion.

<html>
<body>
   <h2>Using the <i> eval() </i> method to convert a string into the function expression in JavaScript. </h2>
   <div id = "output"> </div>
</body>
<script>
   let output = document.getElementById('output');
   let funcStr = "var func = () => { output.innerHTML = 'Hello Users!';}";
   eval(funcStr);
   func();
</script>
</html>

Beispiel 2

Im folgenden Beispiel erstellen wir ein Objekt, dessen getHeight-Eigenschaft eine Funktion im String-Format enthält

Wir verwenden die Methode eval(), um den String-Wert der getHeight-Eigenschaft zu berechnen und den Funktionsstring in einen Ausdruck umzuwandeln, bevor wir ihn erneut in der getHeight-Eigenschaft speichern.

Danach führen wir die Funktion getHeight() aus, die die Höhe zurückgibt, die wir in der Höhenvariablen gespeichert haben.

<html>
<body>
   <h2>Using the <i> eval() </i> method to convert a string into the function expression in JavaScript. </h2>
   <div id = "output"> </div>
</body>
<script>
   let output = document.getElementById('output');
   let object = {
      name: "Shubham",
      "getHeight": "function func() { return '6 Feet';}",
      age: 22,
   }
   object.getHeight = eval("(" + object.getHeight + ")");
   let height = object.getHeight();
   output.innerHTML += "The height is " + height + "<br/>";
</script>
</html>

Funktionskonstruktor verwenden

Der Function()-Konstruktor ermöglicht es uns, eine Funktion aus einer Zeichenfolge zu erstellen. Der Function()-Konstruktor kann N Parameter annehmen. Die ersten N-1 Parameter des Funktionskonstruktors () werden als Parameter der zu erstellenden Funktion verwendet, und der N-te Parameter ist der Funktionsausdruck

Grammatik

Benutzer können mithilfe des Function()-Konstruktors mithilfe der folgenden Syntax Funktionen aus Zeichenfolgen erstellen.

let func = new Function(expression); 

In der obigen Syntax wird func mit dem Function()-Konstruktor erstellt. Ausdruck ist eine Zeichenfolge, die einen Funktionsausdruck enthält.

Beispiel 3

Im folgenden Beispiel erstellen wir eine Ausdruckszeichenfolge. Wir verwenden auch die Methode eval() in der Ausdruckszeichenfolge, um den mathematischen Ausdruck auszuwerten.

Danach rufen wir die Funktion func() wie eine normale Funktion auf und der Benutzer kann die Ausgabe beobachten

<html>
<body>
   <h2>Using the <i> Function() </i> constructor to convert a string into the function expression in JavaScript. </h2>
   <div id = "output"> </div>
</body>
<script>
   let output = document.getElementById('output');
   let expression = "output.innerHTML += 'The value of 10 + 10 is ' + eval(10 + 10);";
   let func = new Function(expression);
   func();
</script>
</html>

Beispiel 4

Im folgenden Beispiel haben wir mehrere Parameter an den Function()-Konstruktor übergeben. Die ersten drei Parameter werden als Parameter für den als vierten Parameter übergebenen Funktionsausdruck verwendet.

Wir drucken die Parameterwerte im Funktionsausdruck. In der Ausgabe kann der Benutzer sehen, dass die Standardwerte der Parameter gedruckt werden, da wir beim Aufruf der Funktion concatString() keine Parameter übergeben haben.

<html>
<body>
   <h2>Using the <i> Function() </i> constructor to convert a string into the function expression in JavaScript. </h2>
   <div id = "output"> </div>
</body>
<script>
   let output = document.getElementById('output');
   let expression = "output.innerHTML += 'The value of param1 + param2 + param3 is ' + param1 + param2 + param3;";
   let concatString = new Function("param1 = 'Welcome '", "param2 = 'To the '", "param3 = ' TutorialsPoint!'", expression);
   concatString();
</script>
</html>

In diesem Tutorial haben wir gelernt, einen String mit zwei verschiedenen Methoden in einen Funktionsausdruck umzuwandeln. In der ersten Methode haben wir die Methode eval() verwendet, mit der wir jeden Ausdruck in JavaScript auswerten können.

Bei der zweiten Methode haben wir den Funktionskonstruktor verwendet, der Funktionsparameter und Funktionsausdrücke als Parameter verwendet, um eine neue Funktion zu erstellen.

Das obige ist der detaillierte Inhalt vonWie konvertiere ich einen String in eine Funktion in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen