المرحلة 0 · الأسبوع 2 · الدرس 0009 · تقفيلة الأسبوع
تمرين الأسبوع: أمثلة القواعد الأربعة بإيدك
ده مش درس فيه شرح جديد — ده الاختبار الحقيقي لأسبوعين كاملين (0005 → 0008). المطلوب: تثبت إن نظام الـ this بقى فعلاً عندك، مش مجرد متابعة شرح — بكود من تأليفك، من غير أي مساعدة AI.
🔁 قبل ما تبدأ — استرجاع من الذاكرة (من غير ما تفتح حاجة):
- رتّب القواعد الأربعة بالأولوية (1 لـ 4).
- ليه الـ arrow function مش داخلة في الترتيب ده أصلاً؟
- مين بيغلب مين لو دالة مربوطة بـ
bindاتنادت بـnew؟
طلعت بسهولة؟ ابدأ التمرين على طول. لأ؟ راجع ورقة المراجعة أو محاكي 0005 قبل ما تكمل.
١ — المطلوب بالظبط
اكتب في test.js 4 مقتطفات كود منفصلة — كل واحد يوضح قاعدة مختلفة من الأربعة (new / explicit / implicit / default) بوضوح تام.
الشروط:
- الأمثلة من تأليفك أنت — مش نسخ/لصق من أي درس سابق. غيّر الأسماء والسيناريو (مش لازم تكون عمر وسارة تاني).
- قبل ما تشغّل أي مقتطفة، اكتب توقعك للناتج في تعليق فوقها.
- شغّل كل مقتطفة فعلياً بـ
nodeوقارن الناتج الحقيقي بتوقعك. - سطر واحد بالعربي (بره الكود، مش تعليق داخله) بيوضح ليه القاعدة دي بالذات هي اللي شغالة هنا.
٢ — تحدي إضافي (bonus) — الترتيب الهرمي
اكتب مثال واحد إضافي فيه تعارض حقيقي بين قاعدتين — مثلاً دالة اتربطت بـ bind وبرضه اتنادت بـ call، أو دالة مربوطة اتنادت بـ new. وضّح مين كسب وليه، بالرجوع لجدول الأولوية.
ده مش تكرار لأمثلة 0007/0008 — لازم سيناريو من عندك (كائنات وأسماء مختلفة).
٣ — قائمة تحقق قبل ما تبعتلي
- كل قاعدة من الأربعة ليها مقتطفة منفصلة وواضحة
- الأمثلة من تأليفي — مش نسخ من الدروس
- توقعت الناتج في تعليق قبل ما أشغّل
- شغّلت فعليًا بـ node وقارنت بالتوقع
- سطر عربي واحد بره كل مقتطفة يوضح ليه القاعدة دي شغالة
- مثال التعارض الهرمي (bonus) موجود وموضّح