雖然ES6 模板文字提供了增強的字符串操作功能,但一個常見的誤解是它們是不可變的並且不能在運行時動態重用或替換。然而,透過涉及 Function 建構函數的巧妙方法,可以建立可動態評估和內插的可重複使用模板文字。
可重複使用範本的關鍵文字的關鍵在於將它們視為一種中間形式。透過將模板字串轉換為 Function 對象,我們有效地創建了一個模板函數,可以使用動態資料呼叫該函數來產生最終字串。
<code class="javascript">const templateString = `\`This is my ${expletive} reusable template!\``; const templateFunction = new Function(`return \`${templateString}\``); let expletive = 'curious'; console.log(templateFunction.call({ expletive }));</code>
這允許我們替換咒語變數的值運行時,有效地使模板可重複使用和動態。
為了進一步簡化流程,我們可以引入一個輔助函數,自動將範本字串轉換為可重複使用範本函數:
<code class="javascript">function reusableTemplate(templateString) { return `return \`${templateString.replace('{','$${')}\``; } const template = reusableTemplate(`This is my {expletive} reusable template!`); console.log(new Function(template)({ expletive: 'AMAZING' }));</code>
此輔助函數可以輕鬆定義和使用具有動態替換的可重複使用範本。
可重複使用範本文字具有多種優點:
但是,它們也有一些限制:
總體而言,ES6 模板文字在使用Function 建構函數擴充時,解鎖了新等級的多功能性和可重用性,證明它們不僅僅是靜態字串,而是用於動態字串操作和模板生成的強大工具。
以上是ES6 範本文字可以在執行時重複使用嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!