在 ES6 中,範本文字允許使用動態值進行字串插值。然而,有時我們可能需要延遲模板文字的評估,直到稍後合併動態元素。
問題:我們如何寫程式碼來延遲ES6 範本的評估
答案:有幾種方法可以實現這一點:
使用純字串:
使用純字串文字而不是模板字串以避免立即計算。插值佔位符值可以使用自訂原型方法格式化,如下所示:
String.prototype.format = function() { var args = arguments; return this.replace(/$\{p(\d)\}/g, function(match, id) { return args[id]; }); }; console.log("Hello, ${p0}. This is a ${p1}".format("world", "test"));
使用標記範本文字:
標記模板文字提供替代方法。但是,需要注意的是,仍然會在不允許插入“p0”等標識符的情況下評估替換。
function formatter(literals, ...substitutions) { return { format: function() { var out = []; for(var i=0, k=0; i < literals.length; i++) { out[k++] = literals[i]; out[k++] = arguments[substitutions[i]]; } out[k] = literals[i]; return out.join(""); } }; } console.log(formatter`Hello, <pre class="brush:php;toolbar:false">console.log(`Hello, ${"world"}. This is a ${"test"}`);. This is a `.format("world", "test"));
避免延遲:
考慮如預期使用範本字串,而不使用任何格式函數或延遲。模板字串提供了一種簡潔有效的方法來插入動態值,而無需額外的複雜性。
以上是如何延後 ES6 範本文字評估?的詳細內容。更多資訊請關注PHP中文網其他相關文章!