اعضای ایستا (Class Static)
«ایستا (Static)» یعنی متد روی خود «کلاس (Class)» تعریف شود، نه روی «شیء (Object)». مثل دفتر قوانین مدرسه که برای همه است، نه فقط یک دانش آموز.
متد ایستا چیست؟
متد «static» فقط از روی نام کلاس صدا می خورد. روی شیء خطا می دهد.
class Car {
constructor(name) {
this.name = name;
}
static hello() {
return "Hello!!";
}
}
const myCar = new Car("Ford");
// صدا زدن درست:
const a = Car.hello();
// صدا زدن نادرست روی شیء:
// const b = myCar.hello();
نکته: چون «static» به شیء وصل نیست، به this شیء دسترسی ندارد.
ارسال شیء به متد ایستا
اگر به داده شیء نیاز داری، شیء را «پارامتر» بده.
class Car {
constructor(name) {
this.name = name;
}
static hello(x) {
return "Hello " + x.name;
}
}
const myCar = new Car("Ford");
const msg = Car.hello(myCar);
کی از static استفاده کنیم؟
وقتی رفتار، وابسته به هیچ نمونه نیست. مثل ابزارهای کمکی یا پیام های عمومی.
سه گام تمرینی
- کلاس Utility بساز و یک متد static بنویس.
- شیئی بساز و امتحان کن که روی شیء خطا می دهد.
- همان شیء را پارامتر بده و خروجی بگیر.
ادامه مطالعه: کلاس ها و وراثت کلاس. همچنین به مرجع شی سر بزن.
منابع بیشتر
- W3Schools: Static Methods — تعریف و مثال های پایه.
- MDN: static — جزئیات استاندارد و نکته های رفتاری.
جمع بندی سریع
- static روی کلاس صدا می خورد.
- روی شیء کار نمی کند.
- برای کارهای عمومی عالی است.
- شیء را پارامتر بده تا داده بگیری.