Heim >Web-Frontend >js-Tutorial >Wie kann ich eine JavaScript-Funktion aufrufen, indem ich ihren als String gespeicherten Namen verwende?

Wie kann ich eine JavaScript-Funktion aufrufen, indem ich ihren als String gespeicherten Namen verwende?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-26 04:03:09469Durchsuche

How Can I Call a JavaScript Function Using Its Name Stored as a String?

Aufrufen einer JavaScript-Funktion anhand des in einer Zeichenfolge gespeicherten Namens

In bestimmten Szenarien kann es vorkommen, dass Sie den Funktionsnamen als besitzen eine Zeichenfolge und müssen diese ausführen. Um dies zu erreichen, befolgen Sie diese Schritte:

Methode 1: Für flache Funktionen

Für Funktionen, die nicht Teil eines Namespace sind, verwenden Sie die folgende Syntax:

window["functionName"](arguments);

Methode 2: Für Namespace-Funktionen

Für Für Funktionen innerhalb von Namespaces ist die folgende Syntax erforderlich:

var namespaces = functionName.split(".");
var func = namespaces.pop();
for (var i = 0; i < namespaces.length; i++) {
  context = context[namespaces[i]];
}
context[func].apply(context, args);

Methode 3: Verwenden einer Komfortfunktion

Um den Vorgang zu vereinfachen, können Sie die folgende Komfortfunktion verwenden :

function executeFunctionByName(functionName, context /*, args */) {
  var args = Array.prototype.slice.call(arguments, 2);
  var namespaces = functionName.split(".");
  var func = namespaces.pop();
  for(var i = 0; i < namespaces.length; i++) {
    context = context[namespaces[i]];
  }
  return context[func].apply(context, args);
}

Anruf Funktion

Um die Funktion mit einer der Methoden aufzurufen, geben Sie den Funktionsnamen und den Kontext wie unten gezeigt an:

executeFunctionByName("My.Namespace.functionName", window, arguments);

Das obige ist der detaillierte Inhalt vonWie kann ich eine JavaScript-Funktion aufrufen, indem ich ihren als String gespeicherten Namen verwende?. 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