توارث پیش‌نمونه‌ای در جاوا اسکریپت

Words
268
Reading
2 min
Listen
Play
9y
توارث یکی از آموزه‌های اصلی در برنامه‌نویسی شیءگرا است. مفهوم توارث آن است که نمونه‌هایی که از یک کلاس ایجاد می‌شوند، به خصلت‌ها و متدهای کلاس‌های والد آن نیز دسترسی دارند.

به‌عنوان مثال، اگر بخواهیم برنامه‌ای در مورد موجودات زنده بنویسیم، یک کلاس برای «جاندار» تعریف می‌کنیم که مثلاً دارای متدی به نام «تنفس» است. از این کلاس، کلاس‌های دیگری برای «تک‌یاخته‌ای» و «چندیاخته‌ای» منشعب می‌کنیم. باز از کلاس اخیر، کلاس‌های «گیاه» و «جانور» را مشتق می‌نماییم. تمام این کلاس‌ها به متد «نفس» دسترسی دارند. البته بعضی از این کلاس‌ها می‌توانند برای این متد تعریف دیگری ارائه دهند که به این کار، جایگزینی متد می‌گویند.

در جاوا اسکریپت کلاس به مفهومی که در زبان‌های شیءگرای واقعی مشاهده می‌شود، وجود ندارد. بلکه در جاوا اسکریپت، توارث بر اساس مفهوم پیش‌نمونه انجام می‌شود. به این صورت که هر تابع سازنده دارای یک خصلت پیش‌نمونه است که نشان دهنده‌ی شیئی است که به‌عنوان پیش‌نمونه برای نمونه‌های ساخته شده از آن تابع سازنده مورد استفاده قرار می‌گیرد. البته بدون استفاده از تابع سازنده هم می‌توان یک شیء را به‌عنوان پیش‌نمونه‌ی یک شیء دیگر قرار داد.

وقتی که می‌خواهیم یک خصلت شیء را بخوانیم، جاوا اسکریپت ابتدا خود آن شیء را برای یافتن آن خصلت جستجو می‌کند. سپس، در صورتی که خصلت روی خود شیء یافت نشد، پیش‌نمونه‌ی آن شیء را جستجو می‌کند. به همین ترتیب، اگر در پیش‌نمونه هم خصلت پیدا نشد، پیش‌نمونه‌ی آن را مورد جستجو قرار می‌دهد. تا آنکه در نهایت، خصلت پیدا شود یا اینکه به شیئی برسیم که پیش‌نمونه‌ی آن «هیچ» (null) است.

این مفهوم اساسی توارث پیش‌نمونه‌ای است که مبنای برنامه‌نویسی شیءگرا در جاوا اسکریپت محسوب می‌شود.