الـ Closure دالة داخلية تحتفظ بالوصول إلى متغيرات الدالة الخارجية، حتى بعد أن تنتهي الخارجية من التنفيذ.
function makeCounter() {
let count = 0;
return function () {
count++;
return count;
};
}
const counter = makeCounter();
counter(); // 1
counter(); // 2
count لا يمكن الوصول إليه من الخارج، لكن الدالة المُعادة “تتذكره”.
أين يُستخدم؟
- بيانات خاصة لا يعدّلها أحد من الخارج.
- الدوال التي تصنع دوالًا، مثل debounce.
- الـ callbacks التي تستخدم متغيرات من المكان الذي كُتبت فيه.