Rumah > hujung hadapan web > tutorial js > Penutupan JavaScript

Penutupan JavaScript

Barbara Streisand
Lepaskan: 2025-01-29 22:37:10
asal
153 orang telah melayarinya

JavaScript Closures

Penutupan JavaScript adalah konsep yang kuat dan penting dalam JavaScript. Ia merujuk kepada fungsi, walaupun selepas fungsi luaran (tertutup) dilaksanakan, ia masih boleh mengakses pembolehubah fungsi luaran. Penutup adalah komponen utama skop JavaScript dan pengaturcaraan berfungsi.

prinsip kerja penutupan

Apabila fungsi ditakrifkan di dalam fungsi lain, fungsi dalaman dapat mengakses pembolehubah dan parameter fungsi luaran. Walaupun selepas fungsi luaran dilaksanakan, fungsi dalaman masih mengekalkan keizinan akses pembolehubah ini. Tingkah laku ini dipanggil penutupan.

Contoh penutupan

<code class="language-javascript">function 外部函数() {
    let 外部变量 = '我来自外部作用域';

    function 内部函数() {
        console.log(外部变量); // 内部函数可以访问外部变量
    }

    return 内部函数;
}

const 闭包示例 = 外部函数();
闭包示例(); // 输出: "我来自外部作用域"</code>
Salin selepas log masuk
dalam contoh ini:

adalah penutupan, kerana ia masih mengekalkan akses

walaupun selepas pelaksanaan 内部函数 selesai. 外部函数 外部变量 aplikasi penutupan sebenar

Privasi data
    : Penutupan boleh digunakan untuk membuat pembolehubah peribadi, dan pembolehubah ini hanya boleh diakses oleh fungsi tertentu.
Fungsi Callback
<code class="language-javascript">function 创建计数器() {
    let 计数 = 0;
    return function() {
        计数++;
        return 计数;
    };
}

const 计数器 = 创建计数器();
console.log(计数器()); // 输出: 1
console.log(计数器()); // 输出: 2
console.log(计数器()); // 输出: 3</code>
Salin selepas log masuk
: Ditutup secara meluas digunakan untuk pengaturcaraan asynchronous, seperti program pemprosesan acara atau panggilan AJAX.
  1. corrihua
: Ditutup untuk fungsi corrihua, salah satu fungsi mengembalikan fungsi lain dengan beberapa parameter.
<code class="language-javascript">setTimeout(function() {
    console.log('这是一个使用闭包的回调函数');
}, 1000);</code>
Salin selepas log masuk
  1. kelebihan penutupan
Kawalan domain kawalan
<code class="language-javascript">function 乘法(a) {
    return function(b) {
        return a * b;
    };
}

const 乘以二 = 乘法(2);
console.log(乘以二(5)); // 输出: 10</code>
Salin selepas log masuk
: Penutupan membantu mengawal skop pembolehubah untuk menghalang mereka daripada mencemarkan skop global.

Kecekapan memori
    : Penutupan membolehkan memori dengan mengekalkan keizinan akses pembolehubah tertentu untuk menggunakan memori dengan berkesan tanpa membuat pembolehubah global.
  • langkah berjaga -jaga untuk menutup
  • Kebocoran memori : Jika ia tidak digunakan dengan betul, penutupan boleh menyebabkan kebocoran memori, kerana mereka mengekalkan rujukan kepada pembolehubah luaran, yang mungkin menghalang kitar semula sampah.
  • Overhead prestasi
: Penutupan lebih banyak boleh menyebabkan masalah prestasi disebabkan peningkatan penggunaan memori.

    Contoh di dunia nyata: pembolehubah peribadi
  • dalam contoh ini:
  • Pembolehubah adalah peribadi, dan hanya boleh diakses atau diubahsuai melalui kaedah yang disediakan oleh penutupan.

Atas ialah kandungan terperinci Penutupan JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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