Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Menangguhkan Penilaian Literal Templat ES6?

Bagaimana untuk Menangguhkan Penilaian Literal Templat ES6?

Susan Sarandon
Susan Sarandonasal
2024-11-06 20:42:03513semak imbas

How to Defer Evaluation of ES6 Template Literals?

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"));
. This is a `.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

  • Penyelesaian 1 menawarkan paling fleksibel tetapi mungkin terlalu rumit untuk kes penggunaan mudah.
  • Penyelesaian 2 lebih mudah tetapi memerlukan penghuraian manual.
  • Penyelesaian 3 menggunakan pendekatan tradisional tanpa literal templat.

Atas ialah kandungan terperinci Bagaimana untuk Menangguhkan Penilaian Literal Templat ES6?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn