<p>سلام ... بحث شی گرایی برام گنگ شد ... تو ویدئو قبلی شی گرایی رو با تابعهای سازنده توضیح دادین که اصلا کلمه کلیدی constructor استفاده نشد و تو این ویدئو constructor و class اضافه شد ... کدوم بالاخره برای شی گرایی هستش؟ </p>
سلام. با اجازه استاد من نظرم را راجب سوال آقای مهرزاد میگوییم.
ببین دوست من بحث شی گرایی یک شیوه برنامه نویسی است که مستقل از زبان برنامه نویسی است. این روش برنامه نویسی به وجود آمده تا ما کد کمتری بنویسیم و همچنین کدهای ما خوانا و تمیز باشد تا بتونیم برنامهها را توسعه دهیم.
در واقع من این مقدمه را نوشتم تا بگم درک مفهوم شی گرایی و اینکه شی گرایی چه کمکی به ما میکند خیلی مهمتر از این است که چگونه در زبانی خاص (مثلا JS) پیاده سازی میشود. به نظر من ما باید اول مفهوم شی گرایی را درست درک کنیم و بعد به سراغ روشهای پیاده سازی آن برویم.
برای درک بهتر مفهوم شی گرایی شما میتونید از ویدیو این قسمت و این قسمت و همچنین این مقاله استفاده کنید. همچنین میتونید درباره شی گرایی در وب جستوجو کنید که اطلاعات زیادی قرار دارد. (البته بعد از خواندن چند مقاله متوجه میشید که موارد دیگر تکراری هستند و در واقع شما درک درستی از شی گرایی پیدا کردید)
حالا بعد از گفتن این حرفا و فهمیدن مفهوم شی گرایی اگر بخواهم جواب دقیقتری به سوال شما بدم میگویم:
برای پیاده سازی شی گرایی در جاوااسکریپت حداقل 3 روش وجود دارد. (تا جایی که من بلدم)
1- با استفاده از کلمه کلیدی Function (ویدیو دو جلسه قبل)
2- با استفاده از کلمه کلیدی Class (ویدیو این جلسه)
3- با استفاده از __proto__ یا Prototype (ویدیو جلسه قبلی)
تا جایی که من میدونم شما میتوانید از هر کدام از روشهای بالا برای درست کردن کلاس و ساختن آبجکت استفاده کنید. اما قطعا تفاوت هایی در سینتکس و امکانات دارند که باید آنها را در جای خودش بررسی کنیم.