Rumah >hujung hadapan web >tutorial js >Apakah Penutupan dalam JavaScript? (Panduan inute)

Apakah Penutupan dalam JavaScript? (Panduan inute)

DDD
DDDasal
2024-11-22 03:42:24361semak imbas

What Are Closures in JavaScript? (inute Guide)

Apakah Penutupan dalam JavaScript?

Penutupan ialah konsep asas dalam JavaScript yang mungkin kelihatan rumit tetapi sangat berkuasa. Berikut ialah panduan ringkas untuk memahaminya.

Apakah Penutupan?

Penutupan dibuat apabila fungsi "mengingat" pembolehubah daripada skop leksikalnya, walaupun selepas skop itu telah keluar.

Contoh:

function outerFunction(outerVariable) {  
  return function innerFunction(innerVariable) {  
    console.log(`Outer: ${outerVariable}, Inner: ${innerVariable}`);  
  };  
}  

const myClosure = outerFunction("Hello");  
myClosure("World");  
// Output: Outer: Hello, Inner: World

Di sini, innerFunction mempunyai akses kepada outerVariable daripada skop outerFunction, walaupun selepas outerFunction telah selesai dilaksanakan.

Mengapa Penutupan Berguna?

Privasi Data: Cipta pembolehubah peribadi.

function counter() {  
  let count = 0;  
  return function () {  
    count++;  
    return count;  
  };  
}  
const myCounter = counter();  
console.log(myCounter()); // 1
console.log(myCounter()); // 2  

Aplikasi Separa: Argumen fungsi praisi.

function multiplyBy(multiplier) {  
  return function (number) {  
    return number * multiplier;  
  };  
}  
const double = multiplyBy(2);  
console.log(double(5)); // 10  

Kesimpulan

Penutupan membolehkan fungsi mengingati persekitaran mereka. Ia bagus untuk pembolehubah peribadi, aplikasi separa dan banyak corak lanjutan lain dalam JavaScript.

Atas ialah kandungan terperinci Apakah Penutupan dalam JavaScript? (Panduan inute). 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