به عنوان مقدمه خوبه که بدونیم برنامه نویسی بر پایه نمونه، خودش یک نوعی از برنامه نویسی شی گراست که کلاس در اون وجود نداره ولی وراثت توسط شبیه سازی اشیایی که از قبل وجود دارند صورت میگیره و به خاطر همینه که بهش میگن برنامه نویسی برمبنای نمونه یا Prototyped Based Programming
همه عناصر توی جاوااسکریپت شی(object) هستن بجز اعداد(numbers)، رشته ها(strings) و به طور کل مقادیر اولیه یا primitive values . بنابر این حتی آرایه ها هم توی جاوا اسکریپت یک نوع شی محسوب میشن
احتمالا میدونید که ما میتونیم حتی بعد از اینکه یک آرایه ساختیم بهش المان جدید اضافه کنیم این کار با متد Push انجام میشه:
const arr=[1, 2];
arr.push(3);
این قابلیت بخاطر وجود اصل وراثت نمونه اولیه یا Prototyped Inheritance .
اساسا ما آرایه هارو بر اساس یک نمونه ی از پیش ساخته شده یا اصطلاحا template میسازیم، که بهش Prototype هم میگیم.این Prototype حاوی تمامی متد های آرایه هست و بنابراین تمام آرایه هایی که توسط ما ایجاد میشن در اصل متد هاشون رو از نمونه اولیه به ارث بردن که ما میتونیم ازشون استفاده کنیم
خیلی سعی کردم که مفهوم برنامه نویسی بر مبنای Prototype رو ساده سازی کنم امیدوارم موفق بوده باشم اما برای درک عمیق تر و بهتر این مفهوم همونطور که توی مقدمه هم اشاره کردم حتما باید با پارادایم شی گرایی آشنا بشیم که توی بلاگ های بعدی سعی میکنم توضیح مختصری دربارش بدم