Maison > interface Web > js tutoriel > le corps du texte

Une chaîne régulière peut-elle être convertie en un modèle littéral en JavaScript sans « eval » ou « new Function » ?

Susan Sarandon
Libérer: 2024-11-23 00:40:12
original
324 Les gens l'ont consulté

Can a Regular String Be Converted to a Template Literal in JavaScript Without `eval` or `new Function`?

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);
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal