مجموعات الإعداد الثابتة

كتل الإعداد الثابتة هي ميزة جديدة من ميزات JavaScript، ويتم توحيدها في الإصدار ECMAScript 2022 ويتوفّر فقط في الإصدارات الحديثة. تتيح لك كتل التهيئة الثابتة تعيين قيمة الحقول الثابتة ديناميكيًا، باستخدام منطق يمتد إلى عبارات متعددة.

لإنشاء مجموعة إعداد ثابتة، استخدِم الكلمة الرئيسية static متبوعة عبارة حظر في مجعّد الأقواس ({}):

class MyClass {
  static {}
}

يتيح لك هذا النمط تهيئة الحقول الثابتة المُعلنة في النص الأساسي أو تغييرها الفئة:

class MyClass {
  static firstProperty = 'First property.';
  static secondProperty;
  static {
    this.secondProperty = 'Second property.';
  }
}

MyClass.secondProperty;
"Second property."

ويتم تقييم هذه العبارات في الوقت الذي يتم فيه إعداد الفئة لأول مرة، والذي عندما يقيّمها محرّك JavaScript لأول مرّة، وليس عندما يتم إنشاء الصف، كما هو الحال مع constructor():

class MyClass {
    static {
        console.log( "Static initialization block." );
    }
    constructor() {
        console.log( "Constructor." );
    }
}
> "Static initialization block."

const myClassInstance = new MyClass();
> "Constructor."

ويمكن أن تحتوي الفئة على كتل إعداد ثابتة متعددة، وتكون هذه الكتل بالترتيب الذي تم الإعلان عنه، إلى جانب أي حقول ثابتة أخرى الطرق. وهذا يعني أن الحقول المعلنة قبل التهيئة الثابتة فقط تتوفر كتلة واحدة في هذه المجموعة:

class MyClass {
  static myNewField;
  static {
    this.myNewField = this.myField;
  }
  static myField = "My value.";
};

MyClass.myNewField;
> undefined

class MyCorrectedClass {
  static myNewField;
  static myField = "My value.";
  static {
    this.myNewField = this.myField;
  }
};

MyCorrectedClass.myNewField;
> "My value."

التحقق من فهمك

أي من العبارات التالية صحيحة؟

يتم تقييم وحدات الإعداد الثابتة عندما تكون الفئة البيانات لأول مرة.
يمكن أن تحتوي الفئة على كتلة إعداد ثابتة واحدة فقط.
تتوفّر الحقول المعلَن عنها بعد حظر الإعداد الثابت. داخل المبنى.