ホームページ  >  記事  >  ウェブフロントエンド  >  「eval」または「new Function」を使用せずに、JavaScript で通常の文字列をテンプレート リテラルに変換できますか?

「eval」または「new Function」を使用せずに、JavaScript で通常の文字列をテンプレート リテラルに変換できますか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-23 00:40:12324ブラウズ

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

文字列をテンプレート文字列に変換する

動的コード生成技術を必要とせずに、通常の文字列をテンプレート文字列に変換できますかeval または new のように関数?

答え:

はい、ES6 では、カスタム メソッドを 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);

このメソッドは引数としてのオブジェクト。キーはテンプレート文字列変数を表し、値はその置換です。補間されたテンプレート文字列を返す新しい関数を作成し、指定された値を使用してそれを実行します。

以上が「eval」または「new Function」を使用せずに、JavaScript で通常の文字列をテンプレート リテラルに変換できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。