درحال حاضر فرصت آن میباشد که ببینیم یک عبارت فراخوانی طراحی اپلیکیشن سریع توابع چیست و در واقع مشابه به چه چیزی میباشد؟ همانگونه که شما میتوانید به دنبال ببینید سینتکس آن مانند تعریفوتمجید یک تابع به طور typical است، اما با این تفاوت که در یک پرانتز قرار میگیرد و در ادمه نیز دارنده یک گروه از پرانتزها میباشد:
(function(){
// ...do something...
})();
اذن دهید دو جنبه کلیدی عبارت فراخوانی سریع تابع را تحقیق کنیم، در بالا ما قصد داریم پرانتزهای محدود کننده را رسیدگی کنیم که در صورت تحت با رنگ آبیرنگ اکران داده گردیده اند:
پژوهش پرانتزهای آبی رنگ
این جا دقیقا نقطه ای میباشد که دعوا قبل ما درباره تعریفوتمجید توابع در مقابل عبارت فراخوانی سریع تابع وارد بازی میگردد، فراموش نکنید که جاوا اسکریپت معمولا هنگامی که با عبارت کلیدی function رو به رو میگردد فرض می نماید که ما یک تابع را تعریفوتمجید کرده ایم. این قضیه بسیار اساسی میباشد به دلیل آن که درصورتیکه شما کوشش نمایید که یک عبارت فراخوانی سریع توابع را سوای پرانتزهای محدود کننده( پرانتزهای آبی رنگ در صورت گذشته) بنویسید جاوا اسکریپت کوشش می نماید که مبادرت به ساخت و ساز یک تابع نماید، البته در واقع شما به طور تصادفی اسم تابع را حذف نموده اید به همین انگیزه یک خطای سینتکس به وجود میآید:
function(){ /*...do Something...*/ }();
// SyntaxError: Unexpected token (
همان گونه که فراتر گفتم وقتی که شما آن را تایپ میکنید جاوا اسکریپت گمان می نماید که شما قصد دارید یک تابع را تمجید نمایید:
// Did you mean to type this?
function doSomething(){ /*...do Something...*/ }();
در حالی کهاین چیزی وجود ندارد که ما میخواهیم، خوشبختانه این جاست که عبارت فراخوانی سریع توابع وارد بازی میشود.
اثر این عبارت این چنین میباشد که تابع مارا در پرانتز قرار میدهد و سپس ما به پارسر جاوا اسکریپت میگوییم کهاین یک عبارت فراخوانی سریع توابع میباشد و خیر یک تعریف و تمجید تابع، همین مسئله به ما اذن میدهد که کد خویش را فارغ از هیچ سیرتکامل خطایی کامپایل کنیم.