「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > ES6 テンプレート リテラルは本当に再利用可能ですか?

ES6 テンプレート リテラルは本当に再利用可能ですか?

2024 年 11 月 8 日に公開
ブラウズ:506

Can ES6 Template Literals be Truly Reusable?

ES6 テンプレート リテラルの再利用性の難問

この議論で提起された主な懸念は、ES6 テンプレート リテラルには再利用性がないと思われる点を中心に展開されています。従来のデモでは、宣言時の置換が強調され、実行時の変更は許可されていません。

解決策: 関数コンストラクターの活用

この問題に対処するための実行可能な解決策は、関数コンストラクター。このアプローチには、テンプレート文字列を関数に変換することが含まれます。

次のスニペットを考えてみましょう。

const templateString = `Hello ${this.name}!`;
const templateVars = {
    name: "world"    
};

const fillTemplate = function(templateString, templateVars){
    return new Function("return `"   templateString   "`;").call(templateVars);
};

console.log(fillTemplate(templateString, templateVars));

この関数を呼び出すと、実行時に変数を柔軟に変更しながら、目的の文字列を生成できます。

の利点このアプローチ:

  • テンプレートのランタイム置換を有効にします値
  • ファイルなどの外部ソースからの補間を容易にする
  • 動的な文字列操作が可能

潜在的な欠点:

  • テンプレート タグには追加の実装作業が必要な場合があります
  • テンプレート内のインライン JavaScript ロジックは必要ありません遅延補間によりサポートされています
  • 各テンプレート使用の関数作成に関連するメモリ オーバーヘッド

要約すると、ES6 テンプレート リテラルには本質的に真の再利用性がありませんが、Function コンストラクターを採用することで回避策が提供されます。実行時にテンプレートを作成および変更するという望ましい動作をエミュレートします。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3