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. این کارت هم با همین مجوز منتشر شده است.