تحدي المراجعة
جزء من قسم Object Oriented Programming في رحلة JavaScript على Coddy — الدرس 46 من 56.
التحدي
لقد تم تزويدك بفئة UserProfile مع خاصية username المنفذة بالفعل. مهمتك هي إكمال التنفيذ لخاصية email باستخدام الـ getters والـ setters:
- أضف getter لـ
emailيقوم بإرجاع قيمة البريد الإلكتروني الحالية - أضف setter لـ
emailيقوم بما يلي:- يتحقق مما إذا كان البريد الإلكتروني يحتوي على حرف '@'
- إذا كان صالحاً:
- يحدث البريد الإلكتروني إلى القيمة الجديدة
- يسجل (Log) تماماً:
Email updated to [newEmail]
- إذا كان غير صالح:
- يسجل (Log) تماماً:
Invalid email! - لا يقوم بتحديث البريد الإلكتروني
- يسجل (Log) تماماً:
جرّب بنفسك
import { UserProfile } from './user.js';
// كود الاختبار - لا تقم بالتعديل
const user = new UserProfile("alice123", "alice@email.com");
user.email = "bob@email.com"; // صالح - يجب أن يسجل نجاحاً
user.email = "invalid-email"; // غير صالح - يجب أن يسجل خطأً
جميع دروس Object Oriented Programming
1الكائنات والكلمة المفتاحية this
مراجعة سريعة: الكائناتإضافة Methods إلى الكائناتفهم الكلمة المفتاحية thisConstructor Functionsالكلمة المفتاحية newتحدي المراجعة7الوراثة والكلمة المفتاحية extends
الوراثةعلاقة "is-a"الكلمة المفتاحية extendsالدالة super()وراثة الخصائص والوظائفتحدي المراجعة2تنظيم الكود
ما هي الـ Modules؟التصدير باستخدام exportالاستيراد باستخدام importالـ Default مقابل الـ Named Exports8تنظيم كود OOP
تنظيم الـ Classes في Modules11مشروع: مصيّر الأشكال
إعداد: فئة Shape والتصديروراثة فئة Circle9الخصائص والدوال الثابتة (Static)
مستوى الكلاس مقابل مستوى الكائنالخصائص الثابتة (Static Properties)دوال المساعدة الثابتة (Static Utility Methods)تحدي المراجعة12Getters و Setters
الكلمات المفتاحية get و setالخصائص المحسوبةالتحقق من الصحة والآثار الجانبيةتحدي المراجعة