Avatar ·

كيفية دمج خصائص كائنين في JavaScript؟ (Object.assign، spread وطرق أخرى)

مرحباً بالجميع! أنا مطور JS مبتدئ، واجهت مشكلة. لدي كائنان بالإعدادات: ```javascript const defaultSettings = { theme: 'light', fontSize: 14, showSidebar: true }; const userSettings = { fontSize: 16, showNotifications: true }; ``` أحتاج إلى دمجهما بحيث يحتوي الكائن النهائي على جميع الخصائص من `defaultSettings`، ولكن إذا كانت هناك مفاتيح مكررة في `userSettings` (مثل `fontSize`)، يجب أن تتجاوز قيمها القيم الافتراضية. أي أريد الحصول على: ```javascript { theme: 'light', fontSize: 16, // تم تجاوزه من userSettings showSidebar: true, showNotifications: true // تمت إضافته من userSettings } ``` حاولت التعيين البسيط: `const merged = { ...defaultSettings, ...userSettings }` — وهذا يعمل. لكنني سمعت أن هناك طرقاً أخرى: `Object.assign()`، وبعض المكتبات مثل Lodash. أي طريقة تُعتبر صحيحة وآمنة في JavaScript الحديث؟ هل هناك