Einfache Zeichenfolgen in Vorlagenzeichenfolgen umwandeln
Kann eine normale Zeichenfolge mühelos in eine Vorlagenzeichenfolge umgewandelt werden? Betrachten Sie das folgende Beispiel:
let a = "b:${b}";
Wie können wir dies dynamisch in eine Vorlagenzeichenfolge konvertieren, ohne auf Auswertung, neue Funktionen oder andere Techniken zur dynamischen Codegenerierung zurückgreifen zu müssen?
let b = 10; console.log(a.template()); // b:10
Eine ES6-Lösung
In modernem JavaScript können wir ES6-Funktionen nutzen, um dies zu erreichen Konvertierung:
String.prototype.interpolate = function(params) { const names = Object.keys(params); const vals = Object.values(params); return new Function(...names, `return \`${this}\`;`)(...vals); }; const template = 'Example text: ${text}'; const result = template.interpolate({ text: 'Foo Boo' }); console.log(result); // 'Example text: Foo Boo'
Diese Methode verwendet die Funktion String.prototype.interpolate, die ein Parameterobjekt akzeptiert. Es erstellt dynamisch eine neue Funktion unter Verwendung der Schlüssel und Werte des Objekts und führt sie dann aus, um die interpolierte Zeichenfolge zurückzugeben.
Das obige ist der detaillierte Inhalt vonWie kann eine reguläre Zeichenfolge ohne „eval' oder „new Function' in ein Vorlagenliteral konvertiert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!