Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Membina Fungsi dalam JavaScript yang Melaksanakan Sekali sahaja?

Bagaimana untuk Membina Fungsi dalam JavaScript yang Melaksanakan Sekali sahaja?

Susan Sarandon
Susan Sarandonasal
2024-10-22 23:14:29953semak imbas

How to Build a Function in JavaScript That Executes Only Once?

Cara Mencipta Fungsi dalam JavaScript yang Hanya Boleh Melaksanakan Sekali

JavaScript sememangnya tidak menawarkan cara untuk mencipta fungsi yang hanya boleh lari sekali. Walau bagaimanapun, terdapat penyelesaian yang elegan menggunakan penutupan dan perpustakaan pihak ketiga.

Kaedah Penutupan:

Penutupan mewujudkan skop peribadi yang boleh diakses oleh fungsi yang terkandung di dalamnya . Dalam skop ini, bendera boleh ditetapkan untuk menunjukkan sama ada fungsi telah dilaksanakan. Kod berikut menunjukkan pendekatan ini:

<code class="javascript">var something = (function() {
    var executed = false;
    return function() {
        if (!executed) {
            executed = true;
            // do something
        }
    };
})();</code>

Memanggil sesuatu() pada kali pertama memanggil fungsi dan set dilaksanakan kepada benar. Panggilan berikutnya tidak akan memberi kesan kerana dilaksanakan kekal benar.

Kaedah Perpustakaan Pihak Ketiga:

Perpustakaan seperti Underscore dan Ramda menyediakan fungsi sekali() yang membungkus yang dibekalkan fungsi dan memastikan ia berjalan sekali sahaja.

<code class="javascript">// Using Underscore
var one_something = _.once(something);

// Using Ramda
const one_something = R.once(something);</code>

Fungsi yang dikembalikan boleh dipanggil beberapa kali, tetapi fungsi asas hanya akan dijalankan kali pertama.

Utiliti untuk Mencipta Satu -Fungsi Masa:

Jika anda tidak menggunakan perpustakaan, anda boleh mencipta fungsi utiliti tersuai. Satu pendekatan ialah:

<code class="javascript">function once(fn, context) { 
    var result;
    return function() { 
        if (fn) {
            result = fn.apply(context || this, arguments);
            fn = null;
        }
        return result;
    };
}</code>

Fungsi ini menerima fungsi dan secara pilihan konteks. Ia mengembalikan fungsi yang melaksanakan fungsi asal pada panggilan pertama dan mengembalikan hasilnya. Panggilan seterusnya tiada kesan.

Atas ialah kandungan terperinci Bagaimana untuk Membina Fungsi dalam JavaScript yang Melaksanakan Sekali sahaja?. 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