Bagaimana untuk Membina Fungsi dalam JavaScript yang Melaksanakan Sekali sahaja?

Susan Sarandon
Lepaskan: 2024-10-22 23:14:29
asal
951 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!