0Pricing
JavaScript Academy · درس

بدائل البرمجة الوظيفية — تمرير السياق والإغلاقات والمساعدات الصغيرة

تجنبوا this بتمرير البيانات صراحةً واستخدام الإغلاقات والمساعدات الصغيرة؛ واكتبوا دوال صغيرة سهلة القراءة

بدائل البرمجة الوظيفية — تمرير السياق والإغلاقات والمساعدات الصغيرة درس مجاني في JavaScript Academy على CoddyKit. هذا هو الدرس 3 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في JavaScript Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة JavaScript Academy 3 دروس في المجموع.

لماذا البدائل الوظيفية؟

الهدف: تجاوز this عندما يسبب ارتباكًا.

  • الدوال النقية: مرّر البيانات كوسائط
  • الإغلاقات: التقط القيم مرة واحدة ثم أعد استخدامها
  • دوال مصنع صغيرة
  • دوال مساعدة صغيرة وواضحة للمبتدئين
بدائل البرمجة الوظيفية — تمرير السياق والإغلاقات والمساعدات الصغيرة — رسم توضيحي 1

الدالة النقية بدلًا من this

تقرأ الدالة النقية المدخلات وتُرجع قيمة. لا تحتوي على this مخفي، لذا يسهل اختبارها.

// Pure function: takes data as parameters
function fullName(user) {
  // no this; explicit inputs
  return user.first + " " + user.last;
}

const u = { first: "Ayla", last: "Kaya" };
console.log("fullName:", fullName(u));
بدائل البرمجة الوظيفية — تمرير السياق والإغلاقات والمساعدات الصغيرة — رسم توضيحي 2

دالة مساعدة تعتمد على الإغلاق

يخزّن الإغلاق السياق من دون this. تلتقط القيم مرة واحدة، ثم تستدعي الدالة المساعدة مرات عديدة.

// Closure: capture config and return a tiny helper
function makeGreeter(prefix) {
  // returns a function that remembers prefix
  return function (name) {
    return prefix + " " + name;
  };
}

const hi = makeGreeter("Hello");
console.log(hi("Ayla")); // "Hello Ayla"
console.log(hi("Mila")); // "Hello Mila"
بدائل البرمجة الوظيفية — تمرير السياق والإغلاقات والمساعدات الصغيرة — رسم توضيحي 3

دالة مصنع من دون this

تخفي دالة مصنع صغيرة الحالة داخل إغلاق؛ ولا تتطلب this. أساليبها صغيرة ومركّزة.

// Factory pattern: build an object with simple, pure-like methods
function makeCounter(start) {
  let value = Number.isFinite(start) ? start : 0;

  return {
    get: function () { return value; },        // read
    inc: function () { value = value + 1; }    // update (encapsulated)
  };
}

const c = makeCounter(2);
c.inc();
console.log("counter:", c.get()); // 3
بدائل البرمجة الوظيفية — تمرير السياق والإغلاقات والمساعدات الصغيرة — رسم توضيحي 4

تركيب دوال مساعدة صغيرة

تترابط الدوال المساعدة الصغيرة المعتمدة على الوسائط بسهولة. ولا حاجة إلى خطوات ربط.

// Compose small helpers: map + filter as plain functions
function isAdult(user) { return user.age >= 18; }
function toLabel(user) { return user.name + " (" + user.age + ")"; }

const people = [
  { name: "Ayla", age: 18 },
  { name: "Mert", age: 16 },
  { name: "Lina", age: 21 }
];

const labels = people.filter(isAdult).map(toLabel);
console.log("labels:", labels);
بدائل البرمجة الوظيفية — تمرير السياق والإغلاقات والمساعدات الصغيرة — رسم توضيحي 5

اختيار الأسلوب

اختر الأسلوب الوظيفي عندما:

  • يمكن أن تكون الدالة نقية (مما يسهل اختبارها)
  • تحتاج إلى بضع قيم فقط (التقطها باستخدام إغلاق)
  • تكون البساطة مهمة للمبتدئين
  • تريد تجنّب مشكلات this تمامًا
بدائل البرمجة الوظيفية — تمرير السياق والإغلاقات والمساعدات الصغيرة — رسم توضيحي 6

اختبار البديل الوظيفي

فحص سريع: تجنّب أخطاء this.

بدائل البرمجة الوظيفية — تمرير السياق والإغلاقات والمساعدات الصغيرة — رسم توضيحي 7

مراجعة

مراجعة: فضّل استخدام الدوال النقية مع الوسائط الصريحة؛ واستخدم الإغلاقات أو دوال المصنع الصغيرة لإدارة حالة محدودة. الدوال المساعدة التي لا تعتمد على this بسيطة وقابلة للاختبار وملائمة للمبتدئين.

بدائل البرمجة الوظيفية — تمرير السياق والإغلاقات والمساعدات الصغيرة — رسم توضيحي 8

الأسئلة الشائعة

هل درس «بدائل البرمجة الوظيفية — تمرير السياق والإغلاقات والمساعدات الصغيرة» مجاني؟

نعم — نص درس «بدائل البرمجة الوظيفية — تمرير السياق والإغلاقات والمساعدات الصغيرة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة JavaScript Academy، انتقل إلى CoddyKit PRO. تتضمن دورة JavaScript Academy 3 دروس في المجموع.

ماذا ستتعلم في «بدائل البرمجة الوظيفية — تمرير السياق والإغلاقات والمساعدات الصغيرة»؟

تجنبوا this بتمرير البيانات صراحةً واستخدام الإغلاقات والمساعدات الصغيرة؛ واكتبوا دوال صغيرة سهلة القراءة تتمرن على JavaScript Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ JavaScript Academy؟

لا تُشترط خبرة سابقة. JavaScript Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 3.

كم من الوقت يستغرق درس «بدائل البرمجة الوظيفية — تمرير السياق والإغلاقات والمساعدات الصغيرة»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس JavaScript Academy هذا؟

نعم. كل درس في JavaScript Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. this المعجمي مقابل الديناميكي، ومراجعة الدوال السهمية
  2. مطبات استخراج methods والتطبيق الجزئي
  3. بدائل البرمجة الوظيفية — تمرير السياق والإغلاقات والمساعدات الصغيرة
← العودة إلى JavaScript Academy