Heim >Web-Frontend >js-Tutorial >Wie kann die Auswertung von ES6-Vorlagenliteralen verschoben werden?
Ausführung für ES6-Vorlagenliterale verzögern
ES6-Vorlagenliterale bieten einen leistungsstarken syntaktischen Zucker für die String-Interpolation, aber was ist, wenn Sie die Auswertung verschieben möchten? bis nach der dynamischen Elementerstellung?
Das Problem
Traditionell würde die Verwendung von String.prototype.format eine verzögerte Auswertung ermöglichen. Vorlagenliterale werden jedoch zum Zeitpunkt der Analyse ausgewertet, was diesen Ansatz verhindert.
Lösung 1: Mit Tags versehene Vorlagenliterale verwenden
Mit Tags versehene Vorlagenliterale ermöglichen Ihnen das Abfangen und Verarbeiten der Vorlage Literal vor der Auswertung:
function formatter(literals, ...substitutions) { return { format: function() { // ... code here ... } }; } console.log(formatter`Hello, <pre class="brush:php;toolbar:false">String.prototype.format = function() { var args = arguments; return this.replace(/$\{p(\d)\}/g, function(match, id) { return args[id]; }); }; console.log("Hello, ${p0}. This is a ${p1}".format("world", "test"));. This is a `.format("world", "test"));
Lösung 2: Einfache String-Literale verwenden
Alternativ können Sie einfache String-Literale verwenden und die Ersetzungen manuell analysieren:
const welcome = (p0, p1) => `Hello, ${p0}. This is a ${p1}`; console.log(welcome("world", "test"));
Lösung 3: Vorlagenliterale vermeiden und Funktionsparameter verwenden
Schließlich können Sie Vorlagenliterale ganz vermeiden und Funktionsparameter verwenden:
Überlegungen
Das obige ist der detaillierte Inhalt vonWie kann die Auswertung von ES6-Vorlagenliteralen verschoben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!