الخصائص المحسوبة
جزء من قسم البرمجة كائنية التوجه في رحلة JavaScript على Coddy. الدرس 44 من 56.
الخصائص المحسوبة هي دوال وصول تحسب قيمة وتُعيدها بدلًا من إرجاع البيانات المخزنة فحسب. تبدو كخصائص عادية، لكنها تحسب قيمتها فور الحاجة.
لنلقِ نظرة على المثال. لدينا كائن يحتوي على خاصية عادية:
const circle = {
radius: 5
};والآن نضيف خاصية محسوبة باستخدام دالة getter:
const circle = {
radius: 5,
get diameter() {
return this.radius * 2;
}
};هكذا نصل إلى الخاصية المحسوبة:
console.log(circle.diameter); // الناتج: 10إذا حدّثنا نصف القطر، فسيُحدَّث القطر تلقائيًا أيضًا:
circle.radius = 10;
console.log(circle.diameter); // الناتج: 20تكون الخصائص المحسوبة مفيدة عندما تعتمد قيمة خاصية على خصائص أخرى أو تتطلب إجراء عملية حسابية.
التحدي
لديك فئة Rectangle تحتوي على خاصيتي العرض والارتفاع. مهمتك هي إضافة خصائص محسوبة للمساحة والمحيط.
- خاصية محسوبة
area- تُرجع العرض × الارتفاع - خاصية محسوبة
perimeter- تُرجع 2 × (العرض + الارتفاع)
جرّب بنفسك
import { Rectangle } from './rectangle.js';
// كود الاختبار - لا تعدّله
const rect = new Rectangle(5, 10);
console.log(`Area: ${rect.area}`); // يجب أن تكون النتيجة "Area: 50"
console.log(`Perimeter: ${rect.perimeter}`); // يجب أن تكون النتيجة "Perimeter: 30"يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس البرمجة كائنية التوجه
1الكائنات والكلمة المفتاحية this
مراجعة سريعة: الكائناتإضافة Methods إلى الكائناتفهم الكلمة المفتاحية thisConstructor Functionsالكلمة المفتاحية newتحدي المراجعة7الوراثة والكلمة المفتاحية extends
الوراثةعلاقة "is-a"الكلمة المفتاحية extendsالدالة super()وراثة الخصائص والوظائفتحدي المراجعة2تنظيم الكود
ما هي الـ Modules؟التصدير باستخدام exportالاستيراد باستخدام importالـ Default مقابل الـ Named Exports8تنظيم كود OOP
تنظيم الـ Classes في Modules11مشروع: مصيّر الأشكال
إعداد: فئة Shape والتصديروراثة فئة Circleإعادة التعريف ودالة المساحةعداد الأشكال Static9الخصائص والدوال الثابتة (Static)
مستوى الكلاس مقابل مستوى الكائنالخصائص الثابتة (Static Properties)دوال المساعدة الثابتة (Static Utility Methods)تحدي المراجعة12Getters و Setters
الكلمات المفتاحية get و setالخصائص المحسوبةالتحقق من الصحة والآثار الجانبيةتحدي المراجعةتدرّب بنفسك: مترجم JavaScript عبر الإنترنت