Heim >Web-Frontend >js-Tutorial >Wie konvertiere ich einen String in einen Funktionsaufruf in JavaScript, ohne „eval' zu verwenden?
Sie haben einen String, der einen Funktionsaufruf darstellt, wie zum Beispiel:
settings.functionName + '(' + t.parentNode.id + ')'
Sie möchten diesen String in einen tatsächlichen Funktionsaufruf umwandeln, aber ohne eval zu verwenden.
Anstelle von eval können Sie den folgenden Code verwenden:
var fn = window[settings.functionName]; if(typeof fn === 'function') { fn(t.parentNode.id); }
Dieser Code:
Betrachten Sie das folgende Einstellungsobjekt:
/* Somewhere: */ window.settings = { /* [..] Other settings */ functionName: 'clickedOnItem' /* , [..] More settings */ };
Später im Code wird die folgende Funktion definiert:
function clickedOnItem (nodeId) { /* Some cool event handling code here */ }
Jetzt können Sie den in der Lösung dargestellten Code verwenden, um einen Funktionsaufruf durchzuführen:
/* Even later */ var fn = window[settings.functionName]; if(typeof fn === 'function') { fn(t.parentNode.id); }
Dies führt dazu, dass die Funktion clickedOnItem mit der t.parentNode.id als Argument aufgerufen wird.
Das obige ist der detaillierte Inhalt vonWie konvertiere ich einen String in einen Funktionsaufruf in JavaScript, ohne „eval' zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!