0Pricing
JavaScript Academy · درس

سلسلة النماذج الأولية وأساسيات الخصائص الخاصة

تعرّفوا إلى أساسيات سلسلة النماذج الأولية؛ وتحققوا من الخصائص الخاصة بالكائن مقابل الموروثة؛ واستخدموا Object.create؛ واضبطوا واصفات بسيطة

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

مقدمة إلى النماذج الأولية

الهدف: تعرّفوا إلى كيفية توريث الكائنات للخصائص عبر سلسلة النموذج الأولي، وكيفية التمييز بين المفاتيح الخاصة والموروثة.

  • سلسلة النموذج الأولي
  • hasOwn مقابل in
  • Object.create
  • واصفات أساسية
سلسلة النماذج الأولية وأساسيات الخصائص الخاصة — رسم توضيحي 1

البحث في النموذج الأولي

إذا لم يُعثر على مفتاح في الكائن، تبحث JavaScript في النموذج الأولي الخاص به، مثل Object.prototype.

// A simple object
const user = { name: "Ayla" };

// The prototype is another object used for fallback lookups
const proto = Object.getPrototypeOf(user);

console.log("name:", user.name);
console.log("has toString?", typeof user.toString === "function");
console.log("proto same as Object.prototype?", proto === Object.prototype);
سلسلة النماذج الأولية وأساسيات الخصائص الخاصة — رسم توضيحي 2

الخاص مقابل الموروث

تعيد Object.hasOwn(obj, key) القيمة true للمفاتيح الخاصة فقط. أما "key" in obj فتشمل المفاتيح الموروثة أيضًا.

// Own vs inherited checks
const point = { x: 1 };

// "in" sees own or inherited
console.log("x in point:", "x" in point);
console.log("toString in point:", "toString" in point);

// Only own keys
console.log("hasOwn x:", Object.hasOwn(point, "x"));
console.log("hasOwn toString:", Object.hasOwn(point, "toString"));
سلسلة النماذج الأولية وأساسيات الخصائص الخاصة — رسم توضيحي 3

أساسيات Object.create

تنشئ Object.create(proto) كائنًا يرث من proto.

// Use Object.create to set a prototype
const animal = { kind: "animal" };

// pet inherits from animal
const pet = Object.create(animal);
pet.name = "Milo";

console.log("pet name:", pet.name);
console.log("pet kind (inherited):", pet.kind);
console.log("hasOwn kind?", Object.hasOwn(pet, "kind"));
سلسلة النماذج الأولية وأساسيات الخصائص الخاصة — رسم توضيحي 4

الواصفات (مقدمة مبسطة)

يمكن لـ Object.defineProperty ضبط أعلام مثل writable وenumerable لمفتاح.

// Define simple descriptors
const prefs = {};
Object.defineProperty(prefs, "theme", {
  value: "dark",
  writable: false,
  enumerable: true
});

// Try to change (silently fails in non-strict)
prefs.theme = "light";

console.log("theme:", prefs.theme);

// List keys: theme is enumerable
console.log("keys:", Object.keys(prefs));
سلسلة النماذج الأولية وأساسيات الخصائص الخاصة — رسم توضيحي 5

نصائح وقائمة تحقق

نصائح:

  • استخدموا Object.hasOwn(obj, key) لاختبار المفاتيح الخاصة.
  • فضّلوا Object.create(proto) لإنشاء نماذج أولية صغيرة.
  • استخدموا الواصفات باعتدال في البداية؛ فالقيم الافتراضية مناسبة.
سلسلة النماذج الأولية وأساسيات الخصائص الخاصة — رسم توضيحي 6

اختبار الخاص مقابل الموروث

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

سلسلة النماذج الأولية وأساسيات الخصائص الخاصة — رسم توضيحي 7

مراجعة

مراجعة: يبحث المحرك عن المفاتيح المفقودة في النموذج الأولي. استخدموا hasOwn للمفاتيح الخاصة فقط، وObject.create لتعيين نموذج أولي، والواصفات للتحكم في الأعلام الأساسية.

سلسلة النماذج الأولية وأساسيات الخصائص الخاصة — رسم توضيحي 8

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

هل درس «سلسلة النماذج الأولية وأساسيات الخصائص الخاصة» مجاني؟

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

ماذا ستتعلم في «سلسلة النماذج الأولية وأساسيات الخصائص الخاصة»؟

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

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

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

كم من الوقت يستغرق درس «سلسلة النماذج الأولية وأساسيات الخصائص الخاصة»؟

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

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

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

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

  1. سلسلة النماذج الأولية وأساسيات الخصائص الخاصة
  2. صياغة Class (معاينة): constructor وmethods وstatic وextends
← العودة إلى JavaScript Academy