بلوک های اولیه سازی استاتیک
با مجموعهها، منظم بمانید
ذخیره و دستهبندی محتوا براساس اولویتهای شما.
بلوک های اولیه استاتیک یک ویژگی جاوا اسکریپت بسیار جدید است که در ECMAScript 2022 استاندارد شده و فقط در مرورگرهای مدرن پشتیبانی می شود. بلوکهای مقداردهی اولیه به شما امکان میدهند با استفاده از منطقی که چندین عبارت را در بر میگیرد، مقدار فیلدهای استاتیک را به صورت پویا تنظیم کنید.
برای ایجاد یک بلوک اولیه استاتیک، از کلمه کلیدی static
و به دنبال آن یک دستور بلوک در براکت های فرفری ( {}
) استفاده کنید:
class MyClass {
static {}
}
این الگو به شما امکان می دهد فیلدهای استاتیک اعلام شده در بدنه کلاس را مقداردهی اولیه یا تغییر دهید:
class MyClass {
static firstProperty = 'First property.';
static secondProperty;
static {
this.secondProperty = 'Second property.';
}
}
MyClass.secondProperty;
"Second property."
این عبارات در زمانی که یک کلاس برای اولین بار مقدار دهی اولیه می شود، ارزیابی می شوند، یعنی زمانی که موتور جاوا اسکریپت برای اولین بار آن را ارزیابی می کند، نه زمانی که نمونه ای از یک کلاس ایجاد می شود، مانند 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."
درک خود را بررسی کنید
کدام یک از عبارات زیر درست است؟
بلوک های اولیه سازی استاتیک زمانی ارزیابی می شوند که کلاس برای اولین بار مقداردهی اولیه شود.
یک کلاس فقط می تواند حاوی یک بلوک اولیه استاتیک باشد.
فیلدهای اعلام شده پس از یک بلوک اولیه سازی استاتیک در داخل بلوک موجود هستند.
جز در مواردی که غیر از این ذکر شده باشد،محتوای این صفحه تحت مجوز Creative Commons Attribution 4.0 License است. نمونه کدها نیز دارای مجوز Apache 2.0 License است. برای اطلاع از جزئیات، به خطمشیهای سایت Google Developers مراجعه کنید. جاوا علامت تجاری ثبتشده Oracle و/یا شرکتهای وابسته به آن است.
تاریخ آخرین بهروزرسانی 2024-03-31 بهوقت ساعت هماهنگ جهانی.
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"اطلاعاتی که نیاز دارم وجود ندارد"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"بیشازحد پیچیده/ مراحل بسیار زیاد"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"قدیمی"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"مشکل ترجمه"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"مشکل کد / نمونهها"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"غیره"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"درک آسان"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"مشکلم را برطرف کرد"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"غیره"
}]
{"lastModified": "\u062a\u0627\u0631\u06cc\u062e \u0622\u062e\u0631\u06cc\u0646 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc 2024-03-31 \u0628\u0647\u200c\u0648\u0642\u062a \u0633\u0627\u0639\u062a \u0647\u0645\u0627\u0647\u0646\u06af \u062c\u0647\u0627\u0646\u06cc."}
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2024-03-31 بهوقت ساعت هماهنگ جهانی."]]