Heim  >  Artikel  >  Web-Frontend  >  Wie rufe ich mit JavaScript eine Funktion aus einem in einer Zeichenfolge gespeicherten Funktionsnamen auf?

Wie rufe ich mit JavaScript eine Funktion aus einem in einer Zeichenfolge gespeicherten Funktionsnamen auf?

王林
王林nach vorne
2023-08-27 09:09:111090Durchsuche

如何使用 JavaScript 从存储在字符串中的函数名称调用函数?

Wir werden die Funktion eval() verwenden, um eine Funktion anhand ihres in einer Zeichenfolge gespeicherten Namens aufzurufen. Auswerten() Funktion wertet einen String in JavaScript-Code aus. Dadurch können wir die Funktion über aufrufen Übergeben Sie einen String mit seinem Namen als Argument an die Funktion eval().

Beispiel

Hier ist ein vollständiges Arbeitsbeispiel dafür, wie man mithilfe von JavaScript eine Funktion aus einem in einer Zeichenfolge gespeicherten Funktionsnamen aufruft –

// Define the function that we want to call
function sayHello() {
   console.log("Hello, world!");
}

// Store the function name as a string
let functionName = "sayHello";

// Use the `eval()` function to convert the string to a function call
eval(functionName + "()");
  • Im obigen Beispiel definieren wir zunächst eine einfache Funktion namens sayHello(), die lediglich „Hello, world!“ an die Konsole protokolliert. Als Nächstes definieren wir eine Variable namens functionName, die die Zeichenfolge „sayHello“ speichert, also den Namen der Funktion, die wir aufrufen möchten.

  • Schließlich verwenden wir die Funktion eval(), um den String functionName in einen Funktionsaufruf umzuwandeln, indem wir ihn mit den Klammern () verketten, die zum tatsächlichen Aufruf der Funktion erforderlich sind.

  • Die Funktion
  • eval() ist eine leistungsstarke, aber potenziell gefährliche Funktion von JavaScript, mit der Sie Zeichenfolgen genau wie JavaScript-Code auswerten können. Die Verwendung von eval() im Produktionscode wird im Allgemeinen nicht empfohlen, da damit beliebiger Code ausgeführt werden kann, was ein Sicherheitsrisiko darstellen kann.

Alternative Methode

Es ist erwähnenswert, dass es sicherere Möglichkeiten gibt, eine Funktion über ihren in einer Zeichenfolge gespeicherten Namen aufzurufen, ohne eval zu verwenden, z. B. -

let functionName = "sayHello";
let functionObj = window[functionName];
functionObj();

oder

let functionName = "sayHello";
let functionObj = window['sayHello'];
functionObj();

Diese Alternativen sind sicherer als die Verwendung von eval, da sie keinen beliebigen Code ausführen, sondern direkt über den Namen auf die Funktion verweisen.

Das obige ist der detaillierte Inhalt vonWie rufe ich mit JavaScript eine Funktion aus einem in einer Zeichenfolge gespeicherten Funktionsnamen auf?. 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