ホームページ > 記事 > ウェブフロントエンド > 「eval」または「new Function」を使用せずに、JavaScript で通常の文字列をテンプレート リテラルに変換できますか?
文字列をテンプレート文字列に変換する
動的コード生成技術を必要とせずに、通常の文字列をテンプレート文字列に変換できますか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 サイトの他の関連記事を参照してください。