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

Bagaimana untuk Menangguhkan Penilaian Tersurat Templat ES6?

Patricia Arquette
Patricia Arquetteasal
2024-11-09 00:30:02809semak imbas

How to Defer ES6 Template Literal Evaluation?

Menangguhkan Penilaian untuk Literal Templat ES6

Dalam ES6, literal templat membenarkan interpolasi rentetan dengan nilai dinamik. Walau bagaimanapun, kadangkala kita mungkin perlu menangguhkan penilaian literal templat sehingga satu masa kemudian untuk memasukkan elemen dinamik.

Soalan: Bagaimanakah kita boleh menulis kod untuk menangguhkan penilaian templat ES6 literal sehingga selepas kita mencipta elemen yang digunakan untuk interpolasi secara dinamik?

Jawapan: Terdapat beberapa pendekatan untuk mencapai ini:

  1. Menggunakan Rentetan Biasa:

    Gunakan literal rentetan biasa dan bukannya rentetan templat untuk mengelakkan penilaian segera. Nilai pemegang tempat interpolasi boleh diformatkan menggunakan kaedah prototaip tersuai seperti ini:

    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"));
  2. Menggunakan Huruf Templat Berteg:

    Tersurat templat berteg menawarkan kaedah alternatif. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa penggantian masih dinilai tanpa membenarkan interpolasi pengecam seperti "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"));
  3. Mengelakkan Penangguhan:

    Pertimbangkan untuk menggunakan rentetan templat seperti yang dimaksudkan tanpa sebarang fungsi format atau penangguhan. Rentetan templat menyediakan cara yang ringkas dan cekap untuk menginterpolasi nilai dinamik tanpa kerumitan tambahan.

Atas ialah kandungan terperinci Bagaimana untuk Menangguhkan Penilaian Tersurat 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