جستجو برای:
  • خانه
  • دوره و کتاب
  • مقالات
    • خانواده جاوا اسکریپت
      • مقالات جاوا اسکریپت
      • مقالات ری اکت و نکست
      • هوش مصنوعی
    • خانواده فرانت
      • مقالات سی اس اس
      • مقالات اچ تی ام ال
    • محیط کار
      • سوالات استخدامی جاوا اسکریپت
      • سوالات استخدامی ری اکت
      • اصطلاحات محیط کار فرانت اند
    • مجله پرنیان
      • تصاویر دوره ها
      • نظرات دانشجویان قدیم
  • سوالات متداول
  • تماس با ما
  • خانواده پرنیان
    • چت خانه
    • دستیار هوش مصنوعی(رایگان!)
    • تایید مدارک
    • پیام یا انتقاد (ناشناس)
    • تعیین سطح زبان انگلیسی
    • پخش لایو رادیوسام
 
  • 09921632445
  • radioarsam[at]gmail.com
  • فروشگاه محصولات
  • بلاگ
  • تماس با ما
  • درباره پارسا قربانیان، موسس مدرسه پرنیان
پارسا قربانیان |گروه آموزشی پرنیان | آموزش حرفه ای طراحی سایت
  • خانه
  • دوره و کتاب
  • مقالات
    • خانواده جاوا اسکریپت
      • مقالات جاوا اسکریپت
      • مقالات ری اکت و نکست
      • هوش مصنوعی
    • خانواده فرانت
      • مقالات سی اس اس
      • مقالات اچ تی ام ال
    • محیط کار
      • سوالات استخدامی جاوا اسکریپت
      • سوالات استخدامی ری اکت
      • اصطلاحات محیط کار فرانت اند
    • مجله پرنیان
      • تصاویر دوره ها
      • نظرات دانشجویان قدیم
  • سوالات متداول
  • تماس با ما
  • خانواده پرنیان
    • چت خانه
    • دستیار هوش مصنوعی(رایگان!)
    • تایید مدارک
    • پیام یا انتقاد (ناشناس)
    • تعیین سطح زبان انگلیسی
    • پخش لایو رادیوسام
0

ورود و ثبت نام

بلاگ پرنیان

پارسا قربانیان |گروه آموزشی پرنیان | آموزش حرفه ای طراحی سایتبلاگمقالاتمقالات جاوا اسکریپتپروتوتایپ‌ها در جاوا اسکریپت

پروتوتایپ‌ها در جاوا اسکریپت

10 تیر 1402
ارسال شده توسط مدیریت
مقالات ، مقالات جاوا اسکریپت
361 بازدید
پروتوتایپ‌ها در جاوااسکریپت

پروتوتایپ در جاوا اسکریپت، یک شیء است که به عنوان الگو برای ایجاد اشیاء دیگر عمل می کند. هر شیء در جاوا اسکریپت، یک پروتوتایپ دارد که می تواند به آن موروث برسد.

پروتوتایپ‌ها در جاوااسکریپت از وراثت (inheritance) استفاده می‌کنند. در اصل، هر کلاس در جاوااسکریپت یک شیء پروتوتایپی (prototype object) دارد که ویژگی‌ها و روش‌های مربوط به آن کلاس را تعریف می‌کند. به عبارت دیگر، پروتوتایپ‌ها ساختار مشابهی با شیء‌های کلاسیک دارند اما به صورت غیر قابل تغییر و در دسترس هستند.

زمانیکه ما در برنامه خود نیاز به ارث بری داریم، این کار در جاوا اسکریپت بیشتر از طریق prototype انجام می شود و نه مثل اکثر زبان ها با class! هر object در جاوا اسکریپت فقط یک prototype دارد.

مزایای استفاده از پروتوتایپ ها:

  • کاهش کد: با استفاده از پروتوتایپ ها می توانید از نوشتن کد تکراری برای اشیاء مختلف جلوگیری کنید.
  • به اشتراک گذاری ویژگی ها و متدها: می توانید ویژگی ها و متدها را بین اشیاء مختلف با استفاده از پروتوتایپ ها به اشتراک بگذارید.
  • مقیاس پذیری: با استفاده از پروتوتایپ ها می توانید به راحتی کد خود را برای برنامه های بزرگتر و پیچیده تر مقیاس بندی کنید.

در ادامه یک نمونه معروف از استفاده از پروتوتایپ‌ها در جاوااسکریپت را بررسی می‌کنیم.

تعریف یک کلاس به نام Person با استفاده از تابع سازنده:

//(constructor function)//
function Person(name, age) {
  this.name = name;
  this.age = age;
}

اضافه کردن متد sayHello به پروتوتایپ کلاس Person :

Person.prototype.sayHello = function() {
  console.log(`Hello, my name is ` + this.name + ` and I am ` + this.age + ` years old.`);
}

ساخت یک شیء از کلاس Person :

var person1 = new Person(`parsa`, 30);
var person2 = new Person(`arsam`, 5);

فراخوانی متد sayHello بر روی شیء‌های person1 و person2 :

person1.sayHello(); // خروجی: Hello, my name is parsa and I am 30 years old.
person2.sayHello(); // خروجی: Hello, my name is arsam and I am 5 years old.

در کد بالا، ابتدا یک کلاس با نام Person با استفاده از تابع سازنده (constructor function) تعریف شده است. سپس، یک متد به نام sayHello به پروتوتایپ این کلاس اضافه می‌شود. در نهایت، دو شیء از کلاس Person ساخته شده و متد sayHello بر روی هر یک از این شیء‌ها فراخوانی می‌شود.

استفاده از پروتوتایپ‌ها در جاوااسکریپت به تعریف متدها و ویژگی‌ها در پروتوتایپ کلاس کمک می‌کند و میتوان این اعضا را به تمام شیء‌هایی که از آن کلاس ایجاد می‌شوند به اشتراک بگذارید.

آیا میدانید مدرسه پرنیان، کلاس طراحی سایت حرفه ای بصورت حضوری و مجازی برگزار میکند؟

اما …

وقتی property یک object را صدا می زنیم

برای مثال obj.name را داریم. ابتدا در obj دنبال name می گردد. اگر یافت نشد در prototype از obj به دنبال آن می گردد و اگر بود کال میکند و اگر نبود باز هم به صورت تکراری به سراغ prototype از prototype بعدی می رود تا در نهایت prototype دیگری وجود نداشته باشد و اگر پیدا نکرد خطا می دهد!

پروتوتایپ‌ها در جاوااسکریپت
پروتوتایپ‌ها در جاوااسکریپت

همان طور که مشخص هست شئ staff دارای greeting نیست اما ()staff.greeting اجرا شد بدون خطا!

دلیلش این بود که person را به عنوان prototype به staff دادیم پس از آن ارث بری کرد. یعنی بعد از اینکه توی staff این property وجود نداشت رفت و در person دنبال آن گشت و پیدا کرد.

اما چون تا قبل از es6 چیزی بنام __proto__ وجود ندارد میتوانید از ()Object.create استفاده کنید.

پروتوتایپ‌ها در جاوااسکریپت

امیدواریم از این مقاله نهایت استفاده را برده باشید و آن را با دوستانتان به اشتراک بگذارید. تیم تولید محتوای مدرسه اینترنتی پرنیان این مقاله را تهیه کرده است.

اشتراک گذاری:
درباره مدیریت

شما در حال مطالعه یکی از مقالات آموزشی وبلاگ مدرسه فرانت اند پرنیان هستید. اگر برایتان مفید بود آن را با دوستانتان به اشتراک بگذارید. من پارسا قربانیان ، مدرس با سابقه برنامه نویسی و فرانت اند و اینجا مدرسه فرانت اند پرنیان، میخواهیم در یک معامله برد برد، با هم به آرزوهایمان برسیم.

نوشته های بیشتر از مدیریت
در تلگرام
کانال ما را دنبال کنید!
در اینستاگرام
ما را دنبال کنید!
در یوتوب
ما را دنبال کنید!
Created by potrace 1.14, written by Peter Selinger 2001-2017
در آپارات
ما را دنبال کنید!

مطالب زیر را حتما مطالعه کنید

Vibe Coding چیست؟ آیا آینده برنامه‌نویسی تغییر کرده است؟
Vibe Coding چیست؟ آیا آینده برنامه‌نویسی تغییر کرده است؟
MCP چیست
MCP چیست و چرا آینده برنامه‌نویسی با هوش مصنوعی را تغییر می‌دهد؟
تفاوت HTMLCollection و NodeList در جاوا اسکریپت
تفاوت HTMLCollection و NodeList در جاوا اسکریپت
State Normalization در فرانت‌اند چیست؟
State Normalization در فرانت‌اند چیست؟
حفظ روحیه برنامه نویسان در شرایط جنگی
حفظ روحیه برنامه نویسان در شرایط جنگی
خبر فوری
اطلاعیه مهم درباره شروع کلاس ها
قدیمی تر آموزش هوک useContext در ری اکت
جدیدتر آموزش کامل تایپ اسکریپت

4 دیدگاه

به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.

  • ملیکا گفت:
    17 تیر 1402 در 9:42 ب.ظ

    فوق العاده کامل است.

    پاسخ
    • trainingsitedesign گفت:
      18 تیر 1402 در 10:50 ق.ظ

      ممنون از انرژی شما♥

      پاسخ
  • معین پرویزی گفت:
    4 آبان 1402 در 4:55 ب.ظ

    عالی بود استاد

    پاسخ
    • trainingsitedesign گفت:
      4 آبان 1402 در 6:44 ب.ظ

      خواهش میکنم

      پاسخ

دیدگاهتان را بنویسید لغو پاسخ

جستجو برای:
نوشته‌های تازه
  • پایان دوره بابک
  • Vibe Coding چیست؟ آیا آینده برنامه‌نویسی تغییر کرده است؟
  • MCP چیست و چرا آینده برنامه‌نویسی با هوش مصنوعی را تغییر می‌دهد؟
  • تفاوت HTMLCollection و NodeList در جاوا اسکریپت
  • State Normalization در فرانت‌اند چیست؟
دسته‌ها
دوره ها:

کلاس های درحال ثبت نام فرانت اند: 

  • دوره فرانت اند صبح از اوایل آبان
  • دوره جاوا اسکریپت و ری اکت از 31مرداد

دوره فرانت اند پرنیان

 

مدرسه فرانت اند پرنیان

گروه آموزشی پرنیان از سال 92 تاسیس شده و تاکنون ده ها دوره طراحی وب ، CMS ، سئو و بوت کمپ فرانت اند به صورت حضوری و غیر حضوری برگزار کرده است. ما در پرنیان جدیدترین و کاربردی ترین مباحث طراحی و توسعه وب ، سئو و دیجیتال مارکتینگ رو آموزش داده و راه ورود شما عزیزان به بازار کار را هموار کرده ایم.

فهرست سفارشی
  • بلاگ
  • تماس با ما
  • حساب کاربری من
  • درباره پارسا قربانیان، موسس مدرسه پرنیان
  • سبد خرید
  • فروشگاه

لوگوی مدرسه پرنیان

تمام حقوق برای مدرسه فرانت اند پرنیان محفوظ است. سیاست حفظ حریم شخصی

ورود

رمز عبور را فراموش کرده اید؟

هنوز عضو نشده اید؟ عضویت در سایت