حقول Class والحقول الخاصة # والأعضاء الثابتة
أنشئوا classes ذات حقول عامة، وأخفوا البيانات باستخدام الحقول الخاصة #، وأضيفوا خصائص وmethods ثابتة
حقول Class والحقول الخاصة # والأعضاء الثابتة درس مجاني في JavaScript Academy على CoddyKit. هذا هو الدرس 1 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في JavaScript Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة JavaScript Academy 3 دروس في المجموع.
لماذا الأصناف؟
الهدف: بناء أصناف صغيرة وواضحة.
- fields وmethods عامة
- حقول #private للحالة المخفية
- خصائص وmethods من نوع static للمساعدات على مستوى الصنف
- إبقاء الأمثلة صغيرة وسهلة القراءة

الحقول العامة وconstructor
أنشئ صنفًا يحتوي على field عام وmethods صغيرة؛ وأبقِ المنطق بسيطًا للمبتدئين.
// Public fields and a simple method
class Counter {
// public field with default
value = 0;
constructor(start) {
// use a default if start is not provided
this.value = Number.isFinite(start) ? start : 0;
}
inc() {
this.value = this.value + 1;
}
}
const c1 = new Counter(2);
c1.inc();
console.log("value:", c1.value); // 3

حقول # الخاصة
تفرض اللغة حقول #private، ولا يمكن استخدامها إلا داخل جسم الصنف. اعرض methods للقراءة عند الحاجة.
// Private # fields hide internal state
class SafeCounter {
// private field (only inside the class)
#value = 0;
constructor(start) {
this.#value = Number.isFinite(start) ? start : 0;
}
inc() { this.#value = this.#value + 1; }
getValue() { return this.#value; } // expose via method
}
const sc = new SafeCounter(5);
sc.inc();
console.log("safe value:", sc.getValue());
// External access fails (uncommenting the next line would throw):
// console.log(sc.#value);

Getters للقراءة الآمنة
يمكن لـ getter إرجاع قيمة مشتقة أو تم التحقق منها، مع إبقاء الحقل خاصًا.
// Getters provide read-only views; simple guard logic
class User {
#name = "Anonymous";
constructor(name) {
if (typeof name === "string" && name.trim().length > 0) {
this.#name = name.trim();
}
}
get name() {
return this.#name;
}
}
const u = new User(" Ayla ");
console.log("name:", u.name);

الأعضاء static
يُستدعى أعضاء static على الصنف (مثل MathHelp.circleArea())، وليس على النسخ.
// Static = belongs to the class, not to instances
class MathHelp {
static PI = 3.14159;
static circleArea(r) {
if (!(typeof r === "number" && r >= 0)) return 0;
return MathHelp.PI * r * r;
}
}
console.log("PI:", MathHelp.PI);
console.log("area r=2:", MathHelp.circleArea(2));
// Instances do not have the static members:
const mh = new MathHelp();
console.log("instance has PI?", "PI" in mh); // false

عادات مناسبة للمبتدئين
نصائح:
- فضّل الأصناف الصغيرة ذات methods قليلة وواضحة.
- استخدم #private للخصوصية الحقيقية؛ أما الشرطات السفلية فهي مجرد اصطلاح تسمية.
- ضع الثوابت والأدوات المساعدة ضمن أعضاء static.
- اعرض methods قراءة محدودة (getters) إذا احتجت إلى الوصول من خارج الصنف.

اختبار أساسيات الحقول الخاصة
تحقق سريع: حقول # الخاصة.

مراجعة
مراجعة: استخدم الحقول العامة للحالة البسيطة، و#private لإخفاء التفاصيل الداخلية، وstatic للمساعدات على مستوى الصنف. اجعل كل صنف صغيرًا وسهل القراءة.

الأسئلة الشائعة
هل درس «حقول Class والحقول الخاصة # والأعضاء الثابتة» مجاني؟
نعم — نص درس «حقول Class والحقول الخاصة # والأعضاء الثابتة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة JavaScript Academy، انتقل إلى CoddyKit PRO. تتضمن دورة JavaScript Academy 3 دروس في المجموع.
ماذا ستتعلم في «حقول Class والحقول الخاصة # والأعضاء الثابتة»؟
أنشئوا classes ذات حقول عامة، وأخفوا البيانات باستخدام الحقول الخاصة #، وأضيفوا خصائص وmethods ثابتة تتمرن على JavaScript Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ JavaScript Academy؟
لا تُشترط خبرة سابقة. JavaScript Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 3.
كم من الوقت يستغرق درس «حقول Class والحقول الخاصة # والأعضاء الثابتة»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس JavaScript Academy هذا؟
نعم. كل درس في JavaScript Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- حقول Class والحقول الخاصة # والأعضاء الثابتة
- الوراثة وsuper ومتى نفضّل التركيب
- Mixins (لمحة) — إعادة استخدام بسيطة من دون تسلسلات هرمية عميقة