البرمجة

استكشاف أسرار تحديد اسم الفئة الأساسية في ECMAScript 6

في سياق لغة البرمجة ECMAScript 6 (ES6)، يشير سؤالك إلى رغبتك في الحصول على اسم الفئة الأساسية (superclass) لكائن من نوع فئة معينة. في مثالك، لديك فئة Circle التي تمتد من فئة Shape، وتريد الحصول على اسم الفئة الأساسية لكائن من النوع Circle بطريقة مماثلة للحصول على اسم الفئة نفسها.

في ECMAScript 6، يمكن القيام بذلك باستخدام ميزة معينة من البرمجة الكائنية تسمى Object.getPrototypeOf، وهي تستخدم للوصول إلى الكائن الأصلي لأي كائن. سنقوم بتطبيق هذه الميزة للحصول على اسم الفئة الأساسية لكائن foo الذي يتبع فئة Circle.

للقيام بذلك، يمكننا كتابة الكود التالي:

javascript
let superClass = Object.getPrototypeOf(foo.constructor).name; // يقوم بإرجاع سلسلة 'Shape'

في هذا السياق، تم استخدام Object.getPrototypeOf(foo.constructor) للحصول على الكائن الأصلي لكائن foo، ثم تم استخدام .name للحصول على اسم الفئة. بهذه الطريقة، سيتم إرجاع السلسلة “Shape” كاسم للفئة الأساسية.

يمكن لهذا الأسلوب أن يكون مفيدًا عند الحاجة إلى معرفة الفئة الأساسية لكائن معين في بيئة تطوير تعتمد على ECMAScript 6.

المزيد من المعلومات

تعد لغة ECMAScript 6 (أو ES6) تحديثًا هامًا للجافا سكريبت، حيث قدمت العديد من الميزات الجديدة والتحسينات لجعل عملية البرمجة أكثر سهولة وفاعلية. دعنا نستكشف بعض هذه الميزات ونوضح كيف يمكن توسيع فهمنا لاستفادة أكبر من الفئات والكائنات في ES6.

1. كلمة مفتاحية class وتمثيل الفئات:

ES6 قدمت كلمة مفتاحية class لتبسيط عملية إنشاء الكائنات وتعريف الفئات. في مثالك، استخدمت class لتعريف Shape و Circle.

javascript
class Shape { // تعريف الفئة } class Circle extends Shape { // تعريف الفئة المشتقة من فئة Shape }

2. super() والإرث:

استخدمت super() في كونستركتور الفئة المشتقة Circle للوصول إلى الكائن الأم (الكائن الخاص بالفئة الأساسية) وتنفيذ الكونستركتور الخاص به.

javascript
class Circle extends Shape { constructor() { super(); // استدعاء كونستركتور الفئة الأساسية return this; } }

3. Object.getPrototypeOf:

استخدمنا Object.getPrototypeOf للوصول إلى الكائن الأم لكائن foo، الذي هو كائن من الفئة Circle.

javascript
let superClass = Object.getPrototypeOf(foo.constructor).name; // يقوم بإرجاع سلسلة 'Shape'

4. التركيب الأفضل للكود:

يُفضل استخدام class وextends لتعريف الفئات بشكل أنظف وأقل تعقيدًا. يمكن تحسين الكود عن طريق إزالة return this; من كونستركتور الفئات.

5. Arrow Functions:

ES6 أدخلت الدوال السهمية (Arrow Functions) التي تقدم صيغة مختصرة لكتابة الدوال. يمكنك استخدامها بشكل مفيد في سياقات معينة.

javascript
const getSuperClassName = (instance) => Object.getPrototypeOf(instance.constructor).name; let superClass = getSuperClassName(foo); // يقوم بإرجاع سلسلة 'Shape'

اختتام:

في هذا السياق، يتضح أن ECMAScript 6 قد قدمت أدوات قوية للتعامل مع الفئات والكائنات بشكل أفضل. يجب على المطورين استكشاف هذه الميزات بشكل أعمق للتمتع بفوائدها في عملية البرمجة.

زر الذهاب إلى الأعلى