Menangguhkan Pelaksanaan untuk ES6 Template Literal
ES6 Template Literals menyediakan gula sintaksis yang kuat untuk interpolasi rentetan, tetapi bagaimana jika anda ingin menangguhkan penilaian sehingga selepas penciptaan elemen dinamik?
Isunya
Secara tradisinya, menggunakan String.prototype.format akan membenarkan penilaian tertunda. Walau bagaimanapun, literal templat dinilai pada masa penghuraian, menghalang pendekatan ini.
Penyelesaian 1: Gunakan Literal Templat Berteg
Tersurat templat berteg membolehkan anda memintas dan memproses templat literal sebelum penilaian:
function formatter(literals, ...substitutions) { return { format: function() { // ... code here ... } }; } console.log(formatter`Hello, <pre class="brush:php;toolbar:false">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"));
Penyelesaian 2: Gunakan Literal Rentetan Biasa
Sebagai alternatif, anda boleh menggunakan literal rentetan biasa dan menghuraikan penggantian secara manual:
const welcome = (p0, p1) => `Hello, ${p0}. This is a ${p1}`; console.log(welcome("world", "test"));
Penyelesaian 3: Elakkan Literal Templat dan Gunakan Parameter Fungsi
Akhir sekali, anda boleh mengelakkan literal templat sama sekali dan menggunakan parameter fungsi:
Pertimbangan
Atas ialah kandungan terperinci Bagaimana untuk Menangguhkan Penilaian Literal Templat ES6?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!