از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
Enums در جاوا اسکریپت
سرفصلهای مطلب
جاوا اسکریپت، برخلاف بسیاری از زبان های برنامه نویسی دیگر، از enums پشتیبانی داخلی ندارد. با این حال، این بدان معنا نیست که ما نمی توانیم از enums در کد JS خود استفاده کنیم، که می تواند با استفاده از روش های دیگر به دست آید. در این مقاله راه های مختلف برای دستیابی به enum در JS با استفاده از اشیاء و کلاس ها را بررسی خواهیم کرد.
اول از همه، enums چیست و چرا مفید است؟ Enums یا enumerations راهی برای تعریف مجموعه ای از ثابت های نامگذاری شده است. آنها می توانند برای نشان دادن مجموعه ای ثابت از مقادیر، مانند جهت های اصلی (به عنوان مثال، شمال، شرق، جنوب، غرب) یا ماه های سال استفاده شوند. Enum ها عالی هستند زیرا کد ما را خواناتر و در نتیجه قابل نگهداری تر می کنند، با ارائه راهی واضح و مختصر برای نمایش گروهی از مقادیر مرتبط.
اشیاء به عنوان Enums
یکی از راه های دستیابی به استفاده از enums در JS استفاده از آبجکت ها است. ما میتوانیم یک شی را با ویژگیهایی تعریف کنیم که با مقادیر enum مطابقت دارد و به آنها یک مقدار اختصاص دهیم. مثلاً فرض کنید می خواهیم برای روزهای هفته یک enum تعریف کنیم. ما می توانیم این کار را با ایجاد یک شی مانند زیر انجام دهیم:
const DaysOfWeek = {
Monday: 1,
Tuesday: 2,
Wednesday: 3,
Thursday: 4,
Friday: 5,
Saturday: 6,
Sunday: 7
};
سپس می توانیم از این ویژگی ها در کد خود برای نمایش روزهای هفته استفاده کنیم. به عنوان مثال، ما می توانیم استفاده کنیم DaysOfWeek.Monday
ملک به مرجع دوشنبه.
توجه داشته باشید که چند مبادله وجود دارد که می توانید انجام دهید، مانند تنظیم مقدار به عنوان یک عدد (که در این مورد می تواند با ترتیب روزها مطابقت داشته باشد)، یا تنظیم آن به نام هفته، که بهتر است. برای اهداف ورود به سیستم، اما اطلاعات سفارش را حفظ نمی کند.
این یک رویکرد بسیار ساده است که هم اجرا و هم استفاده از آن آسان است. اگرچه محدودیت های خود را دارد، مانند توانایی ویرایش ویژگی های شی.
کلاس ها به عنوان Enums
راه دیگر برای دستیابی به enum در جاوا اسکریپت استفاده از کلاس ها است. میتوانیم کلاسی را با ویژگیهایی تعریف کنیم که با مقادیر enum مطابقت دارند و به آنها یک مقدار اختصاص دهیم. مثلاً فرض کنید می خواهیم برای فصول سال یک enum تعریف کنیم. ما می توانیم این کار را با ایجاد کلاسی مانند زیر انجام دهیم:
class Season {
static Winter = 'Winter';
static Spring = 'Spring';
static Summer = 'Summer';
static Fall = 'Fall';
}
سپس می توانید از این ویژگی ها در کد ما برای اشاره به هر یک از فصل ها استفاده کنید. به عنوان مثال، ما به سادگی استفاده می کنیم Season.Summer
به نمایندگی از تابستان
ما میتوانیم این را حتی فراتر ببریم و توابع کمکی ایجاد کنیم تا هم فهرستها را ایجاد کنیم و هم آنها را برای مقایسه یا ورود به سیستم رشتهبندی کنیم. یکی از مزایای رویکرد کلاس محور این است که ما static
خواص در واقع می توانند نمونه هایی از خود کلاس enum باشند که راحت تر از استفاده از یک رشته ساده است.
class Season {
static Winter = new Season('Winter');
static Spring = new Season('Spring');
static Summer = new Season('Summer');
static Fall = new Season('Fall');
constructor(name) {
this.name = name;
}
toString() {
return `Season.${this.name}`;
}
}
نکته خوب در مورد هر دو رویکرد مبتنی بر شی و مبتنی بر کلاس این است که میتوانیم سایر عملیاتهای متا را انجام دهیم روی enum ها، مانند دریافت لیستی از مقادیر ممکن یا بررسی اینکه آیا یک عدد داده شده یک مقدار معتبر در مجموعه است.
> Object.keys(Season)
( 'Winter', 'Spring', 'Summer', 'Fall' )
نتیجه
در حالی که جاوا اسکریپت مانند بسیاری از زبانهای دیگر از enum بومی پشتیبانی نمیکند، ما همچنان میتوانیم با استفاده از روشهای دیگر، مانند اشیا و کلاسها، به همان عملکرد دست پیدا کنیم. این روشها روشی واضح و مختصر برای نمایش گروهی از مقادیر مرتبط ارائه میدهند و کد ما را خواناتر و قابل نگهداریتر میکنند. با اشیاء و کلاسها، شما هنوز توانایی استفاده از enums را دارید، که ابزار ارزشمندی برای هر توسعهدهنده JS است تا در جعبه ابزار خود داشته باشد.
منتشر شده در 1403-01-04 22:19:04