Rumah >hujung hadapan web >Soal Jawab bahagian hadapan >Bagaimana untuk menggunakan penutupan javascript

Bagaimana untuk menggunakan penutupan javascript

WBOY
WBOYasal
2023-05-17 18:55:38616semak imbas

Penggunaan Penutupan JavaScript

JavaScript ialah bahasa pengaturcaraan yang digunakan secara meluas yang boleh digunakan untuk membangunkan pelbagai jenis aplikasi. Antaranya, penutupan adalah ciri penting JavaScript, yang memainkan peranan penting dalam pengaturcaraan JavaScript. Artikel ini akan memperkenalkan penggunaan penutupan JavaScript secara terperinci.

Apakah itu penutupan JavaScript?

Sebelum memperkenalkan penggunaan penutupan JavaScript, kita perlu terlebih dahulu memahami apa itu penutupan JavaScript. Ringkasnya, penutupan merujuk kepada fungsi yang ditakrifkan di dalam fungsi, dan fungsi itu boleh mengakses pembolehubah dan parameter fungsi luaran. Fungsi dalaman ini membentuk persekitaran tertutup supaya pembolehubah dan parameter dalam fungsi luaran tidak akan dimusnahkan selepas fungsi tersebut dilaksanakan.

Penggunaan penutupan JavaScript

Di bawah, kami akan memperkenalkan beberapa penggunaan penutupan JavaScript:

  1. Mengenkapsulasi pembolehubah persendirian

Dengan menggunakan penutupan, kita boleh merangkum pembolehubah dan fungsi dalam skop peribadi, dengan itu mencipta fungsi yang serupa dengan pembolehubah persendirian. Dengan cara ini, kod luaran tidak boleh mengakses terus pembolehubah dan fungsi ini, sekali gus memastikan keselamatan dan kestabilan program.

Sebagai contoh, kita boleh mentakrifkan fungsi penutupan untuk merangkum pembolehubah:

function counter() {
    var count = 0;
    return function() {
        count++;
        console.log(count);
    }
}

var c = counter();
c(); // 输出1
c(); // 输出2
c(); // 输出3

Dalam kod di atas, kita mentakrifkan pembilang fungsi penutupan dan mentakrifkannya di dalam fungsi penutupan Kiraan pembolehubah dan mengembalikan fungsi yang boleh mengakses kiraan pembolehubah luaran. Dengan cara ini, kami mencipta kiraan pembolehubah peribadi yang tidak boleh diakses secara langsung oleh kod luaran Nilai kaunter hanya boleh diakses dengan memanggil fungsi yang dikembalikan.

  1. Menyimpan hasil fungsi

Dalam beberapa pengiraan yang memakan masa, kami ingin menyimpan cache hasil fungsi untuk meningkatkan kecekapan pelaksanaan fungsi. Dengan menggunakan penutupan, kita boleh menyimpan hasil dalam pembolehubah di dalam penutupan dan mengembalikan nilai tersebut secara langsung apabila fungsi dipanggil seterusnya, dengan itu mengelakkan pengiraan berganda.

Sebagai contoh, kita boleh mentakrifkan fungsi penutupan untuk mengira jujukan Fibonacci:

function fibonacci() {
    var cache = {};
    return function(n) {
        if (n in cache) {
            return cache[n];
        }
        if (n <= 1) {
            return n;
        }
        var result = fibonacci(n-1) + fibonacci(n-2);
        cache[n] = result;
        return result;
    }
}

var fib = fibonacci();
console.log(fib(10)); // 输出55
console.log(fib(20)); // 输出6765
console.log(fib(30)); // 输出832040

Dalam kod di atas, kami mentakrifkan fungsi penutupan Fibonacci untuk mengira urutan nombor itu. Objek cache ditakrifkan di dalam fungsi untuk menyimpan hasil cache Setiap kali fungsi dipanggil, ia mula-mula menyemak sama ada hasilnya telah dicache, jika tidak, nilai akan dikira dan hasilnya disimpan dalam cache , dan akhirnya mengembalikan hasilnya.

  1. Elakkan isu skop dalam gelung

Dalam untuk gelung, kerana skop pembolehubah dalam JavaScript berada pada tahap fungsi, iaitu, ditakrifkan dalam gelung Pembolehubah boleh dilihat sepanjang fungsi. Ini membawa kepada masalah perkongsian pembolehubah dalam penutupan apabila menggunakan fungsi tanpa nama dalam gelung. Dengan menggunakan penutupan kita boleh mengelakkan masalah ini.

Sebagai contoh, kami boleh mentakrifkan fungsi penutupan untuk mengendalikan peristiwa klik dalam gelung:

for (var i = 1; i <= 5; i++) {
    (function(j) {
        document.getElementById('btn-'+j).addEventListener('click', function() {
            console.log(j);
        });
    })(i);
}

Dalam kod di atas, kami menggunakan fungsi tanpa nama yang dipanggil serta-merta untuk membuat penutupan . Dalam setiap gelung, pembolehubah i dihantar ke fungsi sebagai parameter, dan pembolehubah baru j dicipta untuk memegang nilai parameter. Dengan cara ini, penutupan yang dibuat dalam setiap gelung akan menjimatkan nilai j dalam skopnya sendiri, mengelakkan masalah perkongsian berubah-ubah.

Ringkasan

Penutupan ialah ciri penting dalam JavaScript Ia membenarkan fungsi untuk mencipta skop peribadi dan menyimpan pembolehubah dan fungsi dalam skop ini, dengan itu meningkatkan keselamatan dan kestabilan program. Dalam artikel ini, kami memperkenalkan penggunaan penutupan JavaScript, termasuk merangkum pembolehubah persendirian, menyimpan cache hasil fungsi dan mengelakkan masalah skop dalam gelung. Saya harap artikel ini dapat membantu anda memahami penutupan JavaScript.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan penutupan javascript. 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