首頁  >  文章  >  web前端  >  在沒有「eval」或「new Function」的情況下,可以將常規字串轉換為 JavaScript 中的模板文字嗎?

在沒有「eval」或「new Function」的情況下,可以將常規字串轉換為 JavaScript 中的模板文字嗎?

Susan Sarandon
Susan Sarandon原創
2024-11-23 00:40:12338瀏覽

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

將字串轉換為模板字串

可以將普通字串轉換為模板字串,從而無需動態程式碼生成技術像評估或新的函數?

答案:

是的,在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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn