زبان جاوااسکریپت یک زبان مبتنی بر پروتیپ (Prototype-based language) است؛ به این معنی که رفتارهای یک Object توسط Properties خود آن شیء و Properties شیءِ پروتیپ آن مشخص میشود. با این حال، با اضافه شدن کلاسها (Classes) به این زبان، ساخت ساختارهای سلسلهمراتبی از اشیاء (Hierarchies of objects) و ارثبری ویژگیها و مقادیر آنها، بسیار بیشتر با سایر زبانهای شیءگرا (Object-oriented languages) مانند جاوا (Java) همراستا شده است. در این بخش، نشان خواهیم داد که چگونه میتوان اشیاء را از روی کلاسها خلق کرد.
در بسیاری از زبانهای دیگر، کلاسها (یا همان Constructors) به وضوح از اشیاء (یا همان Instances) متمایز هستند. اما در جاوااسکریپت، کلاسها عمدتاً یک لایه انتزاعی (Abstraction) روی مکانیزمِ ارثبریِ پروتیپیِ موجود هستند؛ یعنی تمام الگوهای کلاسی در نهایت به ارثبری مبتنی بر پروتیپ قابل تبدیل هستند. خود کلاسها نیز مقادیر معمولی در جاوااسکریپت به شمار میروند و زنجیره پروتیپ (Prototype chains) مخصوص به خود را دارند. در واقع، بیشتر توابع معمولی در جاوااسکریپت میتوانند به عنوان سازنده (Constructor) استفاده شوند؛ شما از عملگر new به همراه یک Constructor function استفاده میکنید تا یک Object جدید بسازید.
در این آموزش، ما با مدل کلاسیِ جاوااسکریپت که به خوبی انتزاع (Abstract) شده است کار خواهیم کرد و دربارهی معناشناسی (Semantics) و امکاناتی که کلاسها ارائه میدهند بحث میکنیم. اگر مایلید به طور عمیق در سیستم پروتیپِ زیرینِ جاوااسکریپت شیرجه بزنید، میتوانید راهنمای مربوط به ارثبری و زنجیره پروتیپ را مطالعه کنید.
این محتوا کاملا رایگان توسط تیم کدلپر ترجمه شده و در اختیار شما کاربران عزیز قرار گرفته است، هر گونه کپی برداری برای مقاصد غیر رایگان و بدون ذکر منبع، مورد پیگیری قانونی قرار میگیرد.
ترجمه شده از منبع: https://developer.mozilla.org/en-US/docs/Web/JavaScript