Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

الخصائص الثابتة (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
challenge icon

التحدي

أضف الخصائص الثابتة (static properties) PI و E إلى كلاس MathConstants:

  1. خاصية ثابتة PI مضبوطة على 3.14159
  2. خاصية ثابتة 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
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Object Oriented Programming