روش های ادغام دو شی در جاوا اسکریپت
یکی از روشهای متداول استفاده از عملگر پخش (spread operator) است که در استاندارد ECMAScript 2018 معرفی شده است. با این عملگر میتوان به سادگی خواص دو شی را به یک شی جدید ترکیب کرد. به عنوان مثال:
let merged = {...obj1, ...obj2};
در اینجا، merged
شامل تمام خواص obj1
و obj2
خواهد بود و در صورت وجود نام مشابه، خواص obj2
بر obj1
اولویت خواهند داشت.
روش دیگر: استفاده از Object.assign
در نسخههای قدیمیتر جاوا اسکریپت، مانند ECMAScript 2015 (ES6)، میتوان از متد Object.assign
استفاده کرد. این متد به شما این امکان را میدهد که خواص یک شی را به شی دیگر منتقل کنید:
Object.assign(obj1, obj2);
این متد تمام خواص obj2
را به obj1
اضافه میکند و در صورت وجود نام مشابه، مقادیر obj2
بر خواص obj1
جایگزین خواهند شد. همچنین، با استفاده از Object.assign({}, obj1, obj2)
میتوانید یک شی جدید بسازید که شامل ترکیبی از خواص obj1
و obj2
باشد، بدون اینکه obj1
تغییر کند.
روشهای قدیمیتر
برای نسخههای بسیار قدیمیتر جاوا اسکریپت، میتوانید از یک حلقه برای کپی کردن خواص استفاده کنید:
for (var attrname in obj2) {
obj1[attrname] = obj2[attrname];
}
این کد تمام مقادیر obj2
را به obj1
اضافه میکند. اگر به حفظ obj1
اصلی نیاز دارید، بهتر است یک شیء جدید بسازید و خواص را به آن کپی کنید.
استفادۀ jQuery
اگر از jQuery استفاده میکنید، میتوانید از متد jQuery.extend()
برای ادغام اشیا استفاده کنید. به عنوان مثال:
var settings = { validate: false, limit: 5, name: "foo" };
var options = { validate: true, name: "bar" };
jQuery.extend(settings, options);
در این حالت، settings
تغییر خواهد کرد و مقادیر options
بر روی آن اعمال خواهد شد. اگر میخواهید یک شی جدید بدون تغییر در اشیا اولیه بسازید، میتوانید از این کد استفاده کنید:
var newSettings = $.extend({}, defaults, options);