كيفية إنشاء كائنات في JavaScript

نتعامل جميعًا مع الكائنات بطريقة أو بأخرى أثناء كتابة التعليمات البرمجية بلغة البرمجة. في JavaScript ، توفر لنا الكائنات طريقة لتخزين البيانات ومعالجتها وإرسالها عبر الشبكة.

هناك العديد من الطرق التي تختلف بها الكائنات في JavaScript عن الكائنات في لغات البرمجة السائدة الأخرى ، مثل Java. سأحاول تغطية ذلك في موضوع آخر. هنا ، دعونا نركز فقط على الطرق المختلفة التي تسمح لنا JavaScript من خلالها بإنشاء كائنات.

في JavaScript ، فكر في الكائنات على أنها مجموعة من أزواج "key: value". هذا يجلب لنا الطريقة الأولى والأكثر شيوعًا لإنشاء كائنات في JavaScript.

لنبدأ هذا.

1. إنشاء كائنات باستخدام التركيب الحرفي للكائن

هذا حقا بسيط. كل ما عليك فعله هو إلقاء أزواج القيمة الرئيسية مفصولة بـ ":" داخل مجموعة من الأقواس المتعرجة ({}) ويكون العنصر جاهزًا لتقديمه (أو استهلاكه) ، كما هو موضح أدناه:

const person = { firstName: 'testFirstName', lastName: 'testLastName' };

هذه هي الطريقة الأبسط والأكثر شيوعًا لإنشاء كائنات في JavaScript.

2. إنشاء كائنات باستخدام الكلمة الرئيسية "الجديدة"

تشبه طريقة إنشاء الكائنات هذه الطريقة التي يتم بها إنشاء الكائنات في اللغات القائمة على الفئات ، مثل Java. بالمناسبة ، بدءًا من ES6 ، تكون الفئات أصلية في JavaScript أيضًا وسننظر في إنشاء كائنات من خلال تحديد الفئات في نهاية هذه المقالة. لذلك ، لإنشاء كائن باستخدام الكلمة الرئيسية "الجديدة" ، يجب أن يكون لديك وظيفة مُنشئ.

فيما يلي طريقتان يمكنك من خلالهما استخدام نمط الكلمات الرئيسية "الجديد" -

أ) استخدام الكلمة الرئيسية "الجديدة" مع وظيفة "مُنشئ الكائنات المضمنة"

لإنشاء كائن ، استخدم الكلمة الأساسية الجديدة مع Object()المُنشئ ، مثل هذا:

const person = new Object();

الآن ، لإضافة خصائص لهذا الكائن ، علينا القيام بشيء مثل هذا:

person.firstName = 'testFirstName'; person.lastName = 'testLastName';

ربما تكون قد أدركت أن هذه الطريقة أطول قليلاً للكتابة. أيضًا ، لا يُنصح بهذه الممارسة نظرًا لوجود دقة نطاق تحدث خلف الكواليس لمعرفة ما إذا كانت وظيفة المُنشئ مضمنة أو معرفة من قبل المستخدم.

ب) استخدام "جديد" مع وظيفة المُنشئ التي يحددها المستخدم

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

ماذا لو كان علينا إنشاء مئات من الكائنات الشخصية؟ يمكنك تخيل الألم الآن. لذلك ، للتخلص من إضافة الخصائص يدويًا إلى الكائنات ، نقوم بإنشاء وظائف مخصصة (أو محددة من قبل المستخدم). نقوم أولاً بإنشاء دالة مُنشئ ثم نستخدم الكلمة الرئيسية "الجديدة" للحصول على كائنات:

function Person(fname, lname) { this.firstName = fname; this.lastName = lname; }

الآن ، في أي وقت تريد كائن "شخص" ، فقط قم بما يلي:

const personOne = new Person('testFirstNameOne', 'testLastNameOne'); const personTwo = new Person('testFirstNameTwo', 'testLastNameTwo');

3. استخدام Object.create () لإنشاء كائنات جديدة

يكون هذا النمط مفيدًا جدًا عندما يُطلب منا إنشاء كائنات من كائنات أخرى موجودة وليس بشكل مباشر باستخدام صيغة الكلمات الرئيسية "الجديدة". دعونا نرى كيفية استخدام هذا النمط. كما ورد في MDN:

و Object.create()الأسلوب بإنشاء كائن جديد، وذلك باستخدام كائن موجود كما في النموذج الأولي من كائن تم إنشاؤه حديثا.

لفهم Object.createالطريقة ، تذكر فقط أنها تتطلب معلمتين. المعلمة الأولى هي كائن إلزامي يعمل كنموذج أولي للكائن الجديد المراد إنشاؤه. المعامل الثاني هو كائن اختياري يحتوي على الخصائص التي سيتم إضافتها إلى الكائن الجديد.

لن نتعمق الآن في النماذج الأولية وسلاسل الميراث للحفاظ على تركيزنا على الموضوع. ولكن كنقطة سريعة ، يمكنك التفكير في النماذج الأولية على أنها كائنات يمكن للكائنات الأخرى من خلالها استعارة الخصائص / الأساليب التي يحتاجون إليها.

تخيل أن لديك منظمة يمثلها orgObject

const orgObject = { company: 'ABC Corp' };

وتريد إنشاء موظفين لهذه المنظمة. من الواضح أنك تريد كل كائنات الموظف.

const employee = Object.create(orgObject, { name: { value: 'EmployeeOne' } }); console.log(employee); // { company: "ABC Corp" } console.log(employee.name); // "EmployeeOne"

4. استخدام Object.assign () لإنشاء كائنات جديدة

ماذا لو أردنا إنشاء كائن يحتاج إلى خصائص من أكثر من كائن؟ Object.assign()يأتي لمساعدتنا.

كما ورد في MDN:

و يستخدم طريقة لنسخ القيم من كافة الخصائص enumerable الخاصة من واحد أو أكثر من الكائنات المصدر إلى الكائن الهدف. سيعيد الكائن الهدف. Object.assign()

Object.assignيمكن أن تأخذ الطريقة أي عدد من الكائنات كمعلمات. المعلمة الأولى هي الكائن الذي سينشئه ويعيده. سيتم استخدام باقي الكائنات التي تم تمريرها إليها لنسخ الخصائص إلى الكائن الجديد. دعونا نفهمها من خلال توسيع المثال السابق الذي رأيناه.

افترض أن لديك كائنين على النحو التالي:

const orgObject = { company: 'ABC Corp' } const carObject = { carName: 'Ford' }

الآن ، تريد موظفًا في شركة "ABC Corp" يقود سيارة "Ford". يمكنك القيام بذلك بمساعدة Object.assignما يلي:

const employee = Object.assign({}, orgObject, carObject);

الآن، يمكنك الحصول على employeeكائن له companyو carNameكما ممتلكاتها.

console.log(employee); // { carName: "Ford", company: "ABC Corp" }

5. استخدام فئات ES6 لإنشاء الكائنات

ستلاحظ أن هذه الطريقة تشبه استخدام "جديد" مع وظيفة مُنشئ مُعرفة من قبل المستخدم. يتم الآن استبدال وظائف المُنشئ بالفئات حيث يتم دعمها من خلال مواصفات ES6. دعونا نرى الكود الآن.

class Person { constructor(fname, lname) { this.firstName = fname; this.lastName = lname; } } const person = new Person('testFirstName', 'testLastName'); console.log(person.firstName); // testFirstName console.log(person.lastName); // testLastName 

هذه هي جميع الطرق التي أعرفها لإنشاء كائنات في JavaScript. أتمنى أن تكون قد استمتعت بهذا المنشور وأن تفهم الآن كيفية إنشاء الكائنات.

شكرا على وقتك لقراءة هذا المقال. إذا أعجبك هذا المنشور وكان مفيدًا لك ، فيرجى النقر فوق التصفيق؟ زر لإظهار دعمك. استمر في التعلم!