متد در جاوا اسکریپت

تا به اینجا کار ما از اشیا با یک سری خصوصیات ساده ،مثل string,bool و int استفاده کرده‌ایم.برای مثل خصوصیتی مثل نام که از جنس رشته یا string است. علاوه بر خصوصیت های ساده ما می‌توانیم از توابع ،داخل اشیا نیز استفاده کنیم.

توضیح:در داخل متن هم از عبارت شی و هم object نام برده شده که هردو  به یک معنا هستند.

به توابعی که داخل یک شی،مثل خواص اشیا تعریف می‌شوند متد یا Method گفته می‌شود.

در کد بالا ما یک object به اسم restaurant را تعریف کرده‌ایم که دارای خواصی مثل name و guestCapacity همچنین guestCount است.اگر دقت کنید یک خصوصیت دیگری نیز به اسم checkAvailability وجود دارد که با باقی خصوصیتها فرق دارد و در واقع یک تابع است.به عبارتی ما یک متد داخل restaurant تعریف کرده‌ایم.

همانطور که می‌توان به name و guestCapacity از بیرون از object دسترسی داشت مانند مثالهایی که در بخش های قبلی مطرح شد،به متدها نیز می‌توان دسترسی داشت و آنها را اجرا کرد. در خط ۹ مشاهده می‌کنید که با استفاده از نام object و سپس نام متد به آن متد دسترسی پیدا کرده و آن متد را اجرا کرده‌ایم.سپس مقدار خروجی متد را داخل متغیر status ذخیره کرده و در آخر آن را چاپ کرده‌ایم.

this:

در داخل یک متد می‌توان به خصوصیات(propertyهای) objectی که متد در آن قرار دارد دسترسی پیدا کنیم.این کار با استفاده از چیزی به اسم this ممکن خواهد بود.

this از آن دسته از مواردی هست که برای برنامه نویسان تازه کار خیلی گمراه کننده است.

this به شی جاری اشاره می‌کند که متد ما در آن تعریف شده است.
برای مثال اگر به کد زیر دقت کنید:

this.js

ما داخل متد checkAvailability چیزی به اسم this را چاپ کرده‌ایم که در واقع همان شی جاری است.

کد زیر کامل شده مثال قبل است:

در کد بالا در متد checkAvailability به وسیله this به خصوصیات guestCapacity و guestCount دسترسی پیدا کرده‌ایم و مقدار صندلی باقی مانده را مشخص کرده‌ایم و سپس چک کرده‌ایم که آیا صندلی کافی برای نشستن نفرات جدید وجود دارد یا خیر.

تمرین:مثال بالا را یکبار بنویسید و خروجی آن را بدست آورید.سپس دو متد جدید به آن اضافه کنید.

۱.seat وقتی مهمانان روی صندلی می‌نشیند باید به تعداد آنها به مقدار guestCount اضافه شود.

۲٫remove هر زمان مهمانان رستوران را ترک می‌کنند باید به همان اندازه از guestCount کم شود.

برای دیدن جواب روی این لینک کلیک کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *