Aufrufen von JavaScript-Funktionen nach Namen
In JavaScript kann der Zugriff auf eine Funktion über ihren Namen als Zeichenfolge eine praktische Methode zur dynamischen Codeausführung sein . Um dies zu erreichen, ist jedoch ein vorsichtiger Ansatz erforderlich, um potenzielle Sicherheitslücken zu vermeiden.
Lösung:
Anstatt die unsichere Bewertungsfunktion zu verwenden, die vermieden werden sollte, sofern nicht unbedingt erforderlich, Eine sicherere Alternative ist die Verwendung der folgenden Techniken:
1. Globaler Funktionsaufruf:
Um eine globale Funktion über ihren Zeichenfolgennamen aufzurufen, verwenden Sie die folgende Syntax:
window["functionName"](arguments);
Diese Methode funktioniert für Funktionen, die im globalen Bereich deklariert sind.
2. Namespace-Funktionsaufruf (komplexe Form):
Um eine Funktion aufzurufen, die zu einem Namespace gehört, verwenden Sie die folgende komplexe Syntax:
window["My"]["Namespace"]["functionName"](arguments);
Diese Syntax stellt sicher, dass auf die Funktion zugegriffen wird durch seine verschachtelten Namespaces.
3. Namespace-Funktionsaufruf (Komfortfunktion):
Für einen vereinfachten Namespace-Funktionsaufruf sollten 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); }
Sie können eine Namespace-Funktion mit dieser Komfortfunktion aufrufen als folgt:
executeFunctionByName("My.Namespace.functionName", window, arguments);
Mit dieser Methode können Sie den Kontext der Funktion flexibel angeben und so den Aufruf aus verschiedenen Teilen Ihrer Funktion ermöglichen Code.
Das obige ist der detaillierte Inhalt vonWie kann ich JavaScript-Funktionen sicher mit Namen aufrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!