الخصائص الثابتة (Static Properties)
جزء من قسم Object Oriented Programming في رحلة JavaScript على Coddy — الدرس 32 من 56.
تنتمي الخصائص الساكنة (Static properties) إلى الفئة نفسها، وليس إلى مثيلات (instances) الفئة. وهي مشتركة بين جميع المثيلات.
عرّف فئة (class) بخاصية ثابتة (static property):
class Counter {
// تعريف خاصية ثابتة
static count = 0;
constructor() {
// زيادة العداد الثابت في كل مرة يتم فيها إنشاء مثيل جديد
Counter.count++;
}
}قم بالوصول إلى الخاصية الثابتة باستخدام اسم الفئة:
console.log(Counter.count); // 0
// إنشاء بعض المثيلات
const counter1 = new Counter();
const counter2 = new Counter();
console.log(Counter.count); // 2تُعد الخصائص الثابتة (Static properties) مفيدة للقيم التي يجب مشاركتها عبر جميع النسخ (instances) أو للثوابت على مستوى الفئة (class-level constants). على سبيل المثال:
class MathConstants {
static GOLDEN_RATIO = 1.61803;
}
console.log(MathConstants.PI); // 3.14159التحدي
أضف الخصائص الثابتة (static properties) PI و E إلى كلاس MathConstants:
- خاصية ثابتة
PIمضبوطة على3.14159 - خاصية ثابتة
Eمضبوطة على2.71828
ورقة مرجعية
تنتمي الخصائص الثابتة (Static properties) إلى الفئة (class) نفسها، وليس إلى النسخ (instances). يتم مشاركتها بين جميع النسخ ويتم الوصول إليها باستخدام اسم الفئة.
قم بتعريف خاصية ثابتة باستخدام الكلمة المفتاحية static:
class Counter {
static count = 0;
constructor() {
Counter.count++;
}
}الوصول إلى الخصائص الثابتة من خلال اسم الفئة:
console.log(Counter.count); // 0
const counter1 = new Counter();
const counter2 = new Counter();
console.log(Counter.count); // 2الخصائص الثابتة مفيدة للثوابت على مستوى الفئة:
class MathConstants {
static PI = 3.14159;
static E = 2.71828;
}
console.log(MathConstants.PI); // 3.14159جرّب بنفسك
import { MathConstants } from './constants.js';
// كود الاختبار - لا تقم بالتعديل
console.log(MathConstants.PI); // يجب أن تكون النتيجة 3.14159
console.log(MathConstants.E); // يجب أن تكون النتيجة 2.71828
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Object Oriented Programming
1الكائنات والكلمة المفتاحية this
مراجعة سريعة: الكائناتإضافة Methods إلى الكائناتفهم الكلمة المفتاحية thisConstructor Functionsالكلمة المفتاحية newتحدي المراجعة7الوراثة والكلمة المفتاحية extends
الوراثةعلاقة "is-a"الكلمة المفتاحية extendsالدالة super()وراثة الخصائص والوظائفتحدي المراجعة2تنظيم الكود
ما هي الـ Modules؟التصدير باستخدام exportالاستيراد باستخدام importالـ Default مقابل الـ Named Exports8تنظيم كود OOP
تنظيم الـ Classes في Modules11مشروع: مصيّر الأشكال
إعداد: فئة Shape والتصديروراثة فئة Circle9الخصائص والدوال الثابتة (Static)
مستوى الكلاس مقابل مستوى الكائنالخصائص الثابتة (Static Properties)دوال المساعدة الثابتة (Static Utility Methods)تحدي المراجعة