نوفيل
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
دخولابدأ مجاناً
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
نوفيل

منصة تعليم البرمجة الأولى بالعربي. تعلم من الصفر حتى الاحتراف مع كورسات احترافية وتحديات ذكاء اصطناعي.

المنصة

  • الكورسات
  • التحديات
  • المقالات
  • الأدوات

الحساب

  • إنشاء حساب
  • تسجيل الدخول
  • لوحة التحكم
  • الملف الشخصي

روابط

  • سياسة الخصوصية
  • شروط الاستخدام
  • عن نوفيل
  • تواصل معنا

© 2026 نوفيل. جميع الحقوق محفوظة.

صُنع بـ في مصر

نوفيل
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
دخولابدأ مجاناً
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
JS

منهج JavaScript

دليل مرجعي شامل

كل اللغات
مدرسة البرمجة/منهج JavaScript/الكائنات بالتفصيل (JavaScript Objects)

الكائنات بالتفصيل (JavaScript Objects)

objects javascriptالكائنات في جافاسكريبتobject.keys object.valuesdot notation bracket notationspread operator objects

جدول مرجعي سريع

1
الأداةالوظيفةمثال الناتج
Object.keys()مصفوفة بالمفاتيح["a", "b"]
Object.values()مصفوفة بالقيم[1, 2]
Object.entries()مصفوفة من أزواج [مفتاح, قيمة][["a",1],["b",2]]
{...obj}نسخ سطحي أو دمجكائن جديد

الشرح

الكائن (Object) هو أهم هيكل بيانات في جافاسكريبت، ويُستخدم لتخزين مجموعة من البيانات المترابطة على شكل أزواج "مفتاح: قيمة" (Key-Value Pairs). يُعرَّف الكائن بين قوسين معقوفين {}، حيث كل مفتاح (Key) هو نص فريد، وقيمته يمكن أن تكون أي نوع بيانات — رقم، نص، مصفوفة، أو حتى كائن أو دالة أخرى.

للوصول إلى قيمة داخل كائن، توجد طريقتان: النقطة (Dot Notation) مثل كائن.مفتاح، وهي الأكثر شيوعاً وأوضح للقراءة، والأقواس المربعة (Bracket Notation) مثل كائن["مفتاح"]، وهي ضرورية عندما يكون اسم المفتاح متغيراً وليس نصاً ثابتاً، أو عندما يحتوي اسم المفتاح على مسافات أو رموز خاصة.

يمكن للكائن أن يحتوي أيضاً على دوال كقيم، وتُسمى في هذه الحالة "أساليب" (Methods). داخل هذه الأساليب، تُستخدم الكلمة المفتاحية this للإشارة إلى الكائن نفسه الذي يحتوي الأسلوب، مما يسمح بالوصول لبقية خصائص نفس الكائن.

من الأدوات الحديثة المهمة للتعامل مع الكائنات: Object.keys() تُعيد مصفوفة بكل المفاتيح، Object.values() تُعيد مصفوفة بكل القيم، وObject.entries() تُعيد مصفوفة من أزواج [مفتاح, قيمة] وهي مفيدة جداً للمرور على الكائن بحلقة for...of. كذلك Object.assign() وعامل الانتشار {...كائن} يُستخدمان لدمج أو نسخ الكائنات — مع ملاحظة مهمة أن هذا النسخ سطحي (Shallow Copy) فقط، أي أن الكائنات المتداخلة بداخله تبقى مُشارَكة بالمرجع.

الصياغة (Syntax)

syntax
1const شخص = {
2 الاسم: "محمد",
3 العمر: 28,
4 البريد: "m@example.com",
5 يقدم_نفسه: function () {
6 return `أنا ${this.الاسم} وعمري ${this.العمر}`;
7 },
8};
9
10console.log(شخص.الاسم); // Dot Notation
11console.log(شخص["العمر"]); // Bracket Notation
12console.log(شخص.يقدم_نفسه());

أمثلة عملية

مثال 1: استخدام Object.keys/values/entries

استخدام Object.keys/values/entries
1// أدوات Object الحديثة
2const منتج = { الاسم: "لابتوب", السعر: 3000, المتوفر: true };
3
4console.log(Object.keys(منتج)); // ["الاسم", "السعر", "المتوفر"]
5console.log(Object.values(منتج)); // ["لابتوب", 3000, true]
6
7for (const [مفتاح, قيمة] of Object.entries(منتج)) {
8 console.log(`${مفتاح}: ${قيمة}`);
9}

مثال 2: نسخ ودمج الكائنات بعامل الانتشار

نسخ ودمج الكائنات بعامل الانتشار
1// نسخ ودمج الكائنات (Shallow Copy)
2const افتراضي = { لون: "أبيض", حجم: "متوسط" };
3const مخصص = { ...افتراضي, لون: "أسود" }; // دمج مع تعديل
4console.log(مخصص); // { لون: "أسود", حجم: "متوسط" }
5console.log(افتراضي.لون); // "أبيض" — الأصل لم يتغير

نصائح احترافية

  • —استخدم Bracket Notation عند الحاجة للوصول بمفتاح متغير: كائن[متغير_المفتاح].
  • —النسخ بعامل الانتشار {...كائن} سطحي فقط — الكائنات المتداخلة داخله تبقى مُشارَكة بالمرجع وليست منسوخة فعلياً.
  • —Object.entries() مع for...of أفضل طريقة للمرور على كائن مع الوصول للمفتاح والقيمة معاً.
  • —استخدم اختصار الخصائص (Property Shorthand): إذا كان اسم المتغير مطابقاً لاسم المفتاح، اكتب { اسم } بدل { اسم: اسم }.

الدرس السابق

مفهوم الـ Hoisting في جافاسكريبت

الدرس التالي

المصفوفات وطرق التعامل معها (Arrays & Array Methods)

نوفيل

منصة تعليم البرمجة الأولى بالعربي. تعلم من الصفر حتى الاحتراف مع كورسات احترافية وتحديات ذكاء اصطناعي.

المنصة

  • الكورسات
  • التحديات
  • المقالات
  • الأدوات

الحساب

  • إنشاء حساب
  • تسجيل الدخول
  • لوحة التحكم
  • الملف الشخصي

روابط

  • سياسة الخصوصية
  • شروط الاستخدام
  • عن نوفيل
  • تواصل معنا

© 2026 نوفيل. جميع الحقوق محفوظة.

صُنع بـ في مصر