Theme
Primary Color

الإحتفاظ بحالة مستقلة بإستخدام Closure

الدالة الداخلية بتقدر تستخدم متغيرات النطاق الخارجي حتى بعد إنتهاء تنفيذ الدالة الخارجية

إنشاء عداد

كل إستدعاء للدالة الناتجة بيعدل نفس المتغير المحفوظ

function createCounter() {
  let count = 0;
  return () => ++count;
}
const counter = createCounter();
console.log(counter());
console.log(counter());

النتيجة

1
2

إنشاء عدادين مستقلين

كل إستدعاء للدالة الخارجية بيجهز نطاق جديد

function createCounter() {
  let count = 0;
  return () => ++count;
}
const first = createCounter();
const second = createCounter();
first();
console.log(first());
console.log(second());

النتيجة

2
1
javascript شرح