جاوا اسکریپت نسخه جدید ES6 – شی گرایی در ES6 – قسمت اول

جاوا اسکریپت نسخه جدید ES6 – شی گرایی در ES6 – قسمت اول

روز های اول که در حال یادگیری JS بودید را به یاد بیارید، هر چقدر که جلوتر میرفتید منتظر تعریف class بودید اما خبری از تعریف class و obejct ها به آن سبکی که در دیگر زبان های برنامه نویسی بود وجود نداشت.

قبل از خواندن این مقاله باید در مورد شی گرایی پیش زمینه ای داشته باشید و بدانید شی گرایی چیست تا مفاهیم کدنویسی آن را درک کنید توضیح مختصر و کوتاهی از ویکی پدیا در زیر آمده است

برنامه‌نویسی شیءگرا (به انگلیسی Object-Oriented Programming مخفف:OOP) یک شیوه برنامه نویسی است که ساختار یا بلوک اصلی اجزای آن، شی‌ها می‌باشند. در واقع در این شیوه برنامه نویسی، برنامه به شیء گرایش پیدا می‌کند. به این معنا که داده‌ها و توابعی که قرار است بر روی این داده‌ها عمل کنند، تا حد امکان در قالبی به نام شی در کنار یکدیگر قرار گرفته، جمع‌بندی شده و یک واحد (شی) را تشکیل داده و نسبت به محیط بیرونِ خود، کپسوله می‌شوند و از این طریق، توابع بیگانهٔ خارج از آن شی، دیگر امکان ایجاد تغییر در داده‌های درون آن شی را ندارند.

تعریف کلاس و Object ها با Prototype ها انجام میشود برای مثال نمونه کد زیر را در نظر بگیرید:

حال میتوانیم با استفاده از کلمه کلیدی new نمونه ای از این به اصطلاح class ایجاد کنیم اما مشکلات زیر در این نوع تعریف کلاس وجود دارد:

  • به صورت دقیق تعریف constructor وجود ندارد.
  • متد های static وجود ندارد و اگر هم متدی static ساخته میشود به صورت Built-in در JS وجود ندارد و با ترفند هایی ایجاد میشود.
  • متد های setter و getter وجود ندارد
  • وراثت و قابلیت های کلیدی آن درست و کاربردی نیست و Parent و Child ها نیز کاربردی نیستند.
  • و آخرین مشکل این است که این نوع تعریف اصلا تعریف class نیست 😀

اما در ES6 شی گرایی قدرتمند و اصولی وجود دارد.

 

ایجاد کلاس، سازنده و ساخت Instance:

برای تعریف یک class در ES6 از کلمه کلیدی class استفاده میکنیم و Block Code کلاس را با {} مینویسیم به صورت زیر:

حال میتوانیم با کلمه کلیدی new یک نمونه یا instance از کلاس ساخته شده ایجاد کنیم. به صورت زیر:

تعریف متد ها(Method Definition):

برای تعریف method سازنده یا constructor به صورت زیر عمل میکنیم “در مثال زیر name و family را با متد سازنده تنظیم میکنیم”:

حال میتوانیم از این کلاس یک نمونه ایجاد کنیم و مقادیر که میخواهیم به عنوان name و family تنظیم کنیم

برای ساخت متد های کلاس آن ها را همانند constructor ایجاد میکنید و نام دلخواه برای آن ها قرار میدهیم، برای مثال برای کلاس قبلمان یک متد تعریف میکنیم که name ,family را به ما برگرداند و یک متد تعریف میکنیم که اضافه کاری و حقوق پایه را دریافت میکند و حقوق را طبق فورمول وزارت کار محاسبه میکند 😀 😀
به راحتی بالا، بدون هیچ کلمه ی کلیدی، مستقیما نام متد را در داخل کلاس نوشته و بدنه متد را بنویسید.

متد های Static:

همانطور که میدانید متد های ایستا متد هایی هستند که بدون Instance گیری و داشتن نمونه ای از کلاس ( یا شی از کلاس) آن ها را اجرا کنیم. برای ایجاد یک متد Static قبل از نام آن متد کلمه کلیدی static را مینویسیم، برای مثال ما متد محاسبه حقوق را در کلاس قبل استاتیک میکنیم:

خب در این قسمت با ساخت کلاس و متد های آن آشنا شدیم همچنین طریقه ساخت متد های استاتیک را آموخیتم در قسمت بعد با مباحث ییشرفته شی گرایی در ES6 همانند: وراثت، کلاس های Abstract ، متد های دستیابی (Accessor Methods) ها آشنا میشویم.

🙂

  • وحید

    منتظر انتشار مطلب بعدی درباره شی گرایی در ES6 هستیم♥

  • amir

    سایت عالی هست
    هدفش توسعه مطلب هست و نه ک\ی این خعلی خوبه منتظر مطالب جدید هستیم