Bagaimanakah Saya Boleh Mencipta Fungsi dalam JavaScript Yang Melaksanakan Sekali sahaja?

Linda Hamilton
Lepaskan: 2024-10-22 23:32:29
asal
678 orang telah melayarinya

How Can I Create a Function in JavaScript That Executes Only Once?

Mencipta Fungsi dalam JavaScript Yang Boleh Laksana Sekali Sahaja

Dalam JavaScript, kadangkala perlu mengehadkan pelaksanaan fungsi kepada satu tika. Walaupun pembolehubah statik boleh mencapai ini dalam bahasa seperti C , JavaScript menawarkan penyelesaian yang lebih elegan melalui penutupan.

Penutupan, fungsi yang mengekalkan konteksnya walaupun selepas skop penutupnya telah tamat, membolehkan penciptaan fungsi yang hanya boleh dipanggil sekali sahaja. Dengan merangkum bendera pelaksanaan dalam penutupan, kami boleh memastikan bahawa ia kekal berterusan dan tidak boleh diakses oleh kod luaran.

Berikut ialah contoh penggunaan penutupan untuk mencipta fungsi boleh laku sekali:

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

something(); // "do something" happens
something(); // nothing happens</code>
Salin selepas log masuk

Fungsi ini memastikan bahawa kod yang dilampirkan dalam penutupan hanya dilaksanakan sekali, walaupun terdapat seruan berikutnya.

Sebagai alternatif, jika anda lebih suka pendekatan yang lebih terkapsul, anda boleh menggunakan fungsi utiliti seperti di bawah:

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

Penggunaan:

<code class="javascript">function something() { /* do something */ }
var one_something = once(something);

one_something(); // "do something" happens
one_something(); // nothing happens</code>
Salin selepas log masuk

Fungsi utiliti ini mengembalikan fungsi yang menyimpan cache hasil seruan pertama dan melumpuhkan pelaksanaan seterusnya.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencipta 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!