آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

آموزش تعریف های تابع در جاوا اسکریپت-function definition

دوره های مرتبط با این مقاله

تعریف های تابع (function definition)

برای تعریف یک تابع جدید در جاوا اسکریپت از کلیدواژه ی function استفاده می کنیم.
برای تعریف تابع می توان از عبارت (expression) و یا اعلان (declaration) استفاده کرد.

Function declaration

در مباحث اولیه ی این سری آموزشی با نحوه ی اعلان (declare) تابع آشنا شدید. ساختار نگارشی (syntax) تعریف تابع به ترتیب زیر بود:

function functionName(parameters) { 
  code to be executed 
}

توابع اعلان شده، بلافاصله پس از اعلان اجرا نمی شوند. این توابع برای استفاده در آینده ذخیره شده و به مجرد فراخوانی (invoke) اجرا می شوند.

مثال:

نمونه یک

    
امتحان کنید
توجه:

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

استفاده از عبارت برای تعریف تابع

می توان به وسیله ی expression، یک تابع جدید اعلان یا تعریف کرد.
عبارت تابع (function expression) را می توان در یک متغیر ذخیره کرد:

نمونه دو

    
امتحان کنید

پس از اینکه عبارت تابع در متغیر ذخیره شد، می توان آن متغیر را به صورت تابع مورد استفاده قرار داد:

نمونه سه

    
امتحان کنید

تابع بکار رفته در مثال پیش، در واقع یک تابع ناشناس (anonymous function= تابع بدون اسم) بود.
توابعی که در متغیر ذخیره می شوند، نیازی به اسم ندراند. همیشه برای فراخوانی آن ها باید از اسم متغیر استفاده شود.
تابع مثال فوق به یک نقطه ویرگول ختم می شود زیرا که تابع یاد شده جزئی از یک دستور قابل اجرا می باشد.

تابع توکار () function- یک سازنده (constructor)

همان طور که در مثال های قبلی شاهد بودید، توابع در زبان جاوا اسکریپت با استفاده از کلیدواژه ی function اعلان می شوند.
روش دیگری نیز برای اعلان تابع جدید وجود دارد که آن استفاده از تابع سازنده ی توکار خود زبان جاوا اسکریپت به نام ()Function است.

مثال:

نمونه چهار

    
امتحان کنید

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

نمونه پنج

    
امتحان کنید
نکته:

در اغلب موارد می توان از بکار بردن واژه ی کلیدی new خودداری کرد.

Function hoisting_قرار دادن تعریف تابع در بالای

در فصل های گذشته با مفهوم hoisting (یک رفتار پیش فرض جاوا اسکریپت) آشنا شدید.
Hoisting یک رفتار پیش فرض زبان است طی آن declaration (تعریف( تابع به بالای scope (دامنه) جاری انتقال داده می شود.
این رفتار پیش فرض برای تعریف متغیرها و توابع اعمال می شود.
به خاطر وجود این قابلیت، می توان توابع را پیش از اعلان مورد استفاده قرار داد:

myFunction(5); 
function myFunction(y) { 
    return y * y; 
}

توابعی که با expression (عبارت) تعریف می شوند، از این قابلیت بهره نمی برند.

توابع خود فراخوان (Self-Invoking Functions)

می توان کاری کرد که function expression ها " خود فراخوان " شوند.
یک عبارت خود فراخوان (self-invoking expression) به صورت خودکار و بدون اینکه صدا زده شود، اجرا (راه اندازی) می شود.
هر گاه " () " پس از عبارت تابع (function expression) قرار بگیرد، عبارت تابع به خودی خود اجرا می شود.
یک function declaration (اعلان تابع) قابلیت خود فراخوانی را ندارد. برای اینکه نشان دهیم این یک عبارت تابع است که خود را صدا می زند، باید در هر دو طرف تابع مورد نظر پرانتز درج کنیم:

نمونه شش

    
امتحان کنید

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

استفاده از توابع به عنوان مقدار

توابع جاوا اسکریپت را می توان به صورت مقدار مورد استفاده قرار داد:

نمونه هفت

    
امتحان کنید

همچنین می توان توابع جاوا اسکریپت را به صورت عبارات بکار برد:

نمونه هشت

    
امتحان کنید

توابع نوعی شی هستند!

عملگر typeof یک تابع را به عنوان خروجی برای توابع دیگر باز می گرداند.
توابع جاوا اسکریپت را بهتر می توان تحت عنوان شی تعریف کرد، به این خاطر که هم دارای خواص هستند و هم متد.
خاصیت arguments.length در واقع تعداد آرگومان های دریافت شده را به هنگام فراخوانی تابع مورد نظر ، باز می گرداند:

نمونه نه

    
امتحان کنید

متد ()toString یک تابع را به صورت رشته برمی گرداند:

نمونه ده

    
امتحان کنید
نکته:

تابعی که به عنوان خاصیت برای یک شی تعریف می شود، متد آن شی خوانده می شود.
تابعی که به منظور ایجاد اشیا جدید طراحی شده، object constructor (سازنده ی شی) نامیده می شود.


مشاهده فیلم آموزشی

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

  • 4703
  •    2054
  • تاریخ ارسال :   1394/08/11

دانلود PDF دانلود سورس کد دانشجویان گرامی اگر این مطلب برای شما مفید بود لطفا ما را در GooglePlus محبوب کنید
رمز عبور: tahlildadeh.com یا www.tahlildadeh.com
ارسال دیدگاه نظرات کاربران
شماره موبایل دیدگاه
عنوان پست الکترونیک

ارسال

آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

تمامی حقوق این سایت متعلق به آموزشگاه تحلیل داده می باشد .