Heim  >  Artikel  >  Web-Frontend  >  Wie führe ich einen Funktionsaufruf aus einem String in JavaScript aus?

Wie führe ich einen Funktionsaufruf aus einem String in JavaScript aus?

DDD
DDDOriginal
2024-10-27 12:17:30645Durchsuche

How to Execute a Function Call from a String in JavaScript?

Aufrufen eines Funktionsaufrufs aus einer Zeichenfolge

In JavaScript ist es möglich, eine Zeichenfolge, die einen Funktionsaufruf darstellt, in einen tatsächlichen Funktionsaufruf umzuwandeln . Stellen Sie sich den Fall vor, dass wir eine Zeichenfolge wie:

"clickedOnItem(" + t.parentNode.id + ")"

haben, die wir in den Funktionsaufruf übersetzen möchten:

clickedOnItem(IdofParent);

Um dies zu erreichen, können wir den folgenden Ansatz verwenden:

<code class="javascript">var fn = window[settings.functionName];
if(typeof fn === 'function') {
    fn(t.parentNode.id);
}</code>

In diesem Snippet rufen wir zunächst die Funktionsreferenz aus dem Fensterobjekt ab, indem wir die in „settings.functionName“ gespeicherte Zeichenfolge verwenden. Wenn die Funktion vorhanden ist, rufen wir sie mit den gewünschten Argumenten auf.

Wenn Settings.functionName beispielsweise auf „clickedOnItem“ gesetzt ist, würde die Ausführung des Codes zu Folgendem führen:

<code class="javascript">var fn = window["clickedOnItem"]; // Fetch the function reference
fn(t.parentNode.id); // Invoke the function</code>

Dies ahmt effektiv den von uns angestrebten manuellen Funktionsaufruf nach. Bedenken Sie, dass dieser Ansatz aufgrund möglicher Sicherheits- und Wartbarkeitsbedenken im Allgemeinen missbilligt wird. Erwägen Sie die Erkundung sichererer Alternativen, z. B. die Verwendung des Funktionskonstruktors oder von Pfeilfunktionen, um Funktionsaufrufe dynamisch zu erstellen.

Das obige ist der detaillierte Inhalt vonWie führe ich einen Funktionsaufruf aus einem String in JavaScript aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn