شبكة تعلم مع ناو

ما هو الـ Closure في JavaScript؟

الـ Closure دالة داخلية تحتفظ بالوصول إلى متغيرات الدالة الخارجية، حتى بعد أن تنتهي الخارجية من التنفيذ.

function makeCounter() {
  let count = 0;
  return function () {
    count++;
    return count;
  };
}

const counter = makeCounter();
counter();  // 1
counter();  // 2

count لا يمكن الوصول إليه من الخارج، لكن الدالة المُعادة “تتذكره”.

أين يُستخدم؟

  • بيانات خاصة لا يعدّلها أحد من الخارج.
  • الدوال التي تصنع دوالًا، مثل debounce.
  • الـ callbacks التي تستخدم متغيرات من المكان الذي كُتبت فيه.

اختبر نفسك

خمسة أسئلة سريعة، مع الإجابة والشرح بعد كل سؤال.