دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۲۴
  • آبان

جلسه ۶۷ : فراخوانی توابع در جاوا اسکریپت

  • دسته‌بندی‌ها :
جلسه ۶۷ : فراخوانی توابع در جاوا اسکریپت
    • جزئیات
    • نوع محتواآموزش تصویری

      مقدمه

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

      فراخوانی توابع در جاوا اسکریپت

      فراخوانی توابع در جاوا اسکریپت روش های مختلفی دارد که در ادامه ی این مباحث به ان ها پرداخته ایم.

      کد داخل یک تابع جاوا اسکریپت اجرا خواهد شد زمانی که “چیزی” آن را فراخوانی می کند.

      روش های فراخوانی توابع در جاوا اسکریپت

      کد تابع در هنگام تعریف تابع اجرا نمی شود.

      کد در داخل یک تابع هنگامی که تابع فراخوانی می شود، اجرا می شود.

      متداول است که به جای “invoke a function” از عبارت “call a function” استفاده شود.

      همچنین عبارات “call upon a function”(فراخوانی یک تابع) و “start a function” (شروع یک تابع)، یا “execute a function” (اجرای یک تابع) نیز صدق می کند.

      در این آموزش، ما از فراخوانی استفاده خواهیم کرد، زیرا یک تابع جاوا اسکریپت می تواند بدون فراخوانی اجرا شود.

      فراخوانی یک تابع به عنوان یک تابع

      مثال : فراخوانی یک تابع به عنوان تابع
      خودتان امتحان کنید »

      تابع فوق به هیچ شیء تعلق ندارد. اما در جاوا اسکریپت همیشه یک شیء پیش فرض جهانی وجود دارد.

      خود HTML، آبجکت پیش فرض عمومی، صفحه ی HTML است، بنابراین تابع بالای HTML “متعلق به” صفحه HTML است.

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

      ()myFunction و ()window.myFunction یک تابع است.

      مثال :  دو تعریف تابع
      خودتان امتحان کنید »

      این یک روش معمول برای فراخوانی یک تابع جاوا اسکریپت است، اما یک عمل بسیار خوبی نیست.
      متغیرهای عمومی، متد ها یا توابع می توانند به راحتی تضادهای نام و اشکالات در آبجکت های عمومی ایجاد کنند.

      کلمه ی کلیدی this

      در جاوا اسکریپت، چیزی که this نامیده می شود،آبجکت است که دارای کد فعلی است.

      مقدار this، هنگامی که در یک تابع استفاده می شود، آبجکتی است که “دارای” تابع است.

      آبجکت عمومی

      هنگامی که یک تابع بدون یک آبجکت صاحب آن فراخوانی می شود، مقدار این آبجکت عمومی می شود.

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

      این مثال آبجکت پنجره را به عنوان مقدار this باز می گرداند:

      مثال : مقدار this
      خودتان امتحان کنید »

      نکته : فراخوانی یک تابع به عنوان یک تابع عمومی، مقدار this را به عنوان آبجکت عمومی می سازد.
      با استفاده از آبجکت پنجره به عنوان متغیر می توانید برنامه خود را به راحتی خراب کنید.

      فراخوانی یک تابع به عنوان یک متد

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

      مثال زیر یک آبجکت (myObject) با دو ویژگی (firstName and lastName) و یک متد (fullName) ایجاد می کند:

      مثال : فراخوانی ابجکت به عنوان متد
      خودتان امتحان کنید »

      متد fullName تابع است. این تابع متعلق به آبجکت است. myObject صاحب تابع است.

      چیزی که this نامیده می شود، آبجکتی است که «کد جاوا اسکریپت» را «دارا» است. در این مورد مقدار this متغیر myObject است.

      امتحانش کن! متد fullName را برای به دست آوردن مقدار this تغییر دهید:

      مثال : بدست آوردن مقدار this
      خودتان امتحان کنید »

      با استفاده از یک تابع به عنوان یک متد آبجکت، مقدار this را به خود آبجکت تبدیل می کند.

      فراخوانی یک تابع با یک سازنده تابع

      اگر یک فراخوانی تابع با کلمه کلیدی new پیش رفته باشد، این یک فراخوانی سازنده است.

      به نظر می رسد شما یک تابع جدید ایجاد می کنید، اما از آنجا که توابع جاوااسکریپتی آبجکت هستند، شما در واقع یک آبجکت جدید ایجاد می کنید:

      مثال : فراخوانی تابع با کلمه کلیدی new
      خودتان امتحان کنید »

      فراخوانی سازنده یک آبجکت جدید ایجاد می کند. این آبجکت جدید خواص و متد ها را از سازنده اش به ارث می برد.

      کلیدواژه this در سازنده مقدار ندارد.
      مقدار this آبجکت جدید ایجاد شده وقتی که تابع فراخوانی می شود خواهد شد.

      کلام آخر

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

      QR:  جلسه ۶۷ : فراخوانی توابع در جاوا اسکریپت
      به اشتراک بگذارید