Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

Spread Operator الجزء الأول

جزء من قسم Logic & Flow في رحلة JavaScript على Coddy — الدرس 18 من 65.

عامل النشر (...) له العديد من حالات الاستخدام مع JSON. على سبيل المثال، عند القيام بالعملية التالية:

const obj1 = {key1: "123"}
const obj2 = obj1
obj1.key1 = "456
console.log(obj2.key1)

ماذا ستكون المخرجات؟

console.log(obj2.key1)
// الناتج: "456"

قد يكون هذا مفاجئًا! على الرغم من أننا قمنا بتغيير obj1 فقط، إلا أن obj2 تغير أيضًا.

يحدث هذا لأنه عندما نقوم بتعيين الكائنات مباشرة (obj2 = obj1)، فإننا ننشئ مرجعاً، وليس نسخة. كلا المتغيرين يشيران إلى نفس الكائن في الذاكرة.

هذا هو المكان الذي يصبح فيه عامل النشر (spread operator) مفيداً. دعونا نرى كيفية إنشاء نسخة حقيقية:

const obj1 = {key1: "123"};
const obj2 = {...obj1};
obj1.key1 = "456";
console.log(obj2.key1);
// المخرجات: "123"

يقوم عامل الانتشار (spread operator) بإنشاء كائن جديد ونسخ جميع الخصائص القابلة للتعداد من الكائن المصدر إلى الكائن الجديد.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

ورقة مرجعية

يقوم عامل النشر (...) بإنشاء نسخة من الكائن بدلاً من مرجع:

// مرجع (كلا المتغيرين يشيران إلى نفس الكائن)
const obj1 = {key1: "123"}
const obj2 = obj1
obj1.key1 = "456"
console.log(obj2.key1) // المخرجات: "456"
// نسخة باستخدام عامل النشر
const obj1 = {key1: "123"}
const obj2 = {...obj1}
obj1.key1 = "456"
console.log(obj2.key1) // المخرجات: "123"

يقوم عامل النشر بنسخ جميع الخصائص القابلة للتعداد من الكائن المصدر إلى كائن جديد.

جرّب بنفسك

لا يتضمّن هذا الدرس تحدّيًا برمجيًا.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Logic & Flow