Heim >Web-Frontend >js-Tutorial >Wie kann ich eine JavaScript-Funktion mithilfe ihres Stringnamens ausführen?

Wie kann ich eine JavaScript-Funktion mithilfe ihres Stringnamens ausführen?

Linda Hamilton
Linda HamiltonOriginal
2024-12-19 10:27:16667Durchsuche

How Can I Execute a JavaScript Function Using Its String Name?

JavaScript-Funktionen mit String-Darstellung ausführen

Abfrage: Sie haben den Namen einer JavaScript-Funktion als String gespeichert und möchten diese später aufrufen . Wie können Sie diese Zeichenfolge in einen Funktionszeiger umwandeln, um die Funktion anschließend aufzurufen?

Antwort:

  • Auswertung vermeiden:Verwenden Sie sicherere Alternativen wie window["functionName "](Argumente) oder window"My"["functionName"](arguments).
  • Komfortfunktion: Implementieren Sie eine Funktion wieexecuteFunctionByName, wie unten gezeigt:
function executeFunctionByName(functionName, context /*, args */) {
  // Retrieve arguments
  var args = Array.prototype.slice.call(arguments, 2);
  // Split the namespace into parts
  var namespaces = functionName.split(".");
  // Get the function name
  var func = namespaces.pop();
  // Iterate through namespaces and get the context
  for (var i = 0; i < namespaces.length; i++) {
    context = context[namespaces[i]];
  }
  // Apply the function with the context and arguments
  return context[func].apply(context, args);
}
  • Aufruf: Nutzen Sie die Komfortfunktion als folgt:
executeFunctionByName("My.Namespace.functionName", window, arguments);

Diese Lösung ermöglicht die dynamische Funktionsausführung basierend auf einer String-Darstellung, auch für Funktionen innerhalb von Namespaces. Ziehen Sie die umfassenden Lösungen in Betracht, die zur effektiven Bewältigung dieses Szenarios bereitgestellt werden.

Das obige ist der detaillierte Inhalt vonWie kann ich eine JavaScript-Funktion mithilfe ihres Stringnamens ausführen?. 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