Conversion d'une chaîne en chaîne de modèle
Une chaîne habituelle peut-elle être convertie en chaîne de modèle, éliminant ainsi le besoin de techniques de génération de code dynamique comme eval ou new Function ?
Réponse :
Oui, dans ES6, une méthode personnalisée peut être ajoutée au prototype String :
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);
Cette méthode prend un objet comme argument, où les clés représentent les variables de chaîne du modèle et les valeurs sont leurs remplacements. Il crée une nouvelle fonction qui renvoie la chaîne de modèle interpolée et l'exécute avec les valeurs fournies.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!