Closure
Closure ترکیب یک function با دسترسی به متغیرهای محیط تعریفش است؛ این دسترسی حتی پس از پایان اجرای function بیرونی باقی میماند.
توضیح
وقتی یک function از متغیرهای محیط بیرونیِ محل تعریفش استفاده میکند، Closure این دسترسی را حفظ میکند. بنابراین اگر function داخلی برگردانده شود، همچنان میتواند آن متغیرها را بخواند یا تغییر دهد، حتی اگر اجرای function بیرونی تمام شده باشد. این دسترسی به محیط تعریف وابسته است، نه محل فراخوانی؛ همچنین لزوماً یک کپی ثابت از مقدار متغیرها نیست.
مثال
function createCounter() {
let count = 0;
return () => ++count;
}
const counter = createCounter();
console.log(counter()); // 1
console.log(counter()); // 2چرا مهمه
هنگام ساخت callback یا نگهداشتن state خصوصی با Closure روبهرو میشوی. شناخت آن کمک میکند بفهمی یک function چرا هنوز به متغیرهای قبلی دسترسی دارد و تغییر آنها چه اثری روی اجرای بعدی میگذارد.
مفهومهای مرتبط
این کارت را هوش مصنوعی نوشته و دو بار با هوش مصنوعی بررسی شده است.
بر پایهٔ «Closure» از MDN Web Docs (Mozilla Contributors)، با مجوز CC BY-SA 2.5. این کارت هم با همین مجوز منتشر شده است.
مطالبی با این مفهوم
هنوز مطلبی منتشر نشده.