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) بإنشاء كائن جديد ونسخ جميع الخصائص القابلة للتعداد من الكائن المصدر إلى الكائن الجديد.
جرّب بنفسك
لا يتضمّن هذا الدرس تحدّيًا برمجيًا.
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Logic & Flow
1السلاسل النصية بعمق
أساسيات السلاسل النصيةالتكرار عبر السلاسل النصيةTemplate Literalsدوال السلاسل النصيةمراجعة - String Weaver2المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفات ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادمراجعة - المصفوفات ثنائية الأبعادجمع وطرح المصفوفاتالمصفوفات المتعرجة (Jagged Arrays)المصفوفات ثلاثية الأبعاد وما بعدهاأنماط المصفوفات ثنائية الأبعاد الشائعةمراجعة - كل شيء عن المصفوفات5المجموعات - الجزء الأول
ما هي المجموعة؟التكرار عبر المجموعاتإضافة عنصرإزالة عنصرالتحقق من وجود عنصرالحجم وهل هي فارغةالنسخ والمسحملخص - أساسيات المجموعات8مواضيع شيقة حول الـ Arrays
تفكيك الـ Arrayاستخدام الـ Spread Syntax في الـ Arraysالـ Sparse Arraysمراجعة - ورشة عمل الـ Arrays3JSON الجزء الأول
ما هو JSON؟التحقق من وجود المفتاحObject MethodsSpread Operator الجزء الأولSpread Operator الجزء الثانيحذف المفاتيحمراجعة - معالجة مفاتيح JSON