امیرحسین برزگری: وبلاگ شخصی امیرحسین برزگری

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

 

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


قابلیت های تابع :

استفاده از توابع در صفحات و اسکریپت ها ، امکانات زیر را به برنامه نویس می دهد :

  1. دستورات یک تابع ( حتی در زمانی که اسکریپت آن در درون صفحه قرار دارد ) ، تا زمانی که فراخوانی نشود ، اجرا نخواهد شد . از توابع برای تعریف دستور العمل هایی استفاده می شود که می خواهیم اجرای آنها کنترل شده باشد و در مواقع معینی ( مثل وقوع یک رویداد یا … ) انجام شود .
  2. یک تابع را می توان از هر نقطه ای در صفحه فراخوانی کرد .
  3. یک تابع می توان یکسری متغیرها را به عنوان پارامتر ورودی دریافت کرده و همچنین یک مقدار را به عنوان خروجی به نقطه ای که از آن فراخوانی شده سات ، باز گردهند .

محل تعریف توابع :

توابع را می توان در هر جای تگ های اسکریپت < script < ، تعریف کرد . برای آشنایی با مکان تعریف تگ اسکریپت در صفحات HTML ، به قسمت آموزش مکان اسکریپت ها در صفحات وب بروید .
نکته مهم : در قسمت مکان قرار گیری اسکریپت ها در صفحات وب اشاره کردیم ، اسکریپت هایی که در درون قسمت < body > تعریف می شوند ، به محض لود شدن صفحه اجرا خواهند شد . اما چنانچه این اسکریپت ها شامل توابع باشند ، دستورات آن توابع تا زمان فراخوانی تابع اجرا نخواهند شد .


شکل کلی تعریف توابع :

برای تعریف یک تابع از واژه کلیدی function به شکل کلی زیر استفاده می شود :

function   نام تابع ( )
{
   دستورات تابع
}

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

Example

< script type=”text/javascript” >
  function welcome( )
    {
      document.write ( “welcome to DeveloperStudio” )
    }
< /script >

کد
  خروجی

نحوه فراخوانی تابع :

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

نام تابع ( ) ;

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

Example

< html >
  < head >
    < title > عنوان صفحه < /title >
  < /head >
  < body >
    < script type=”text/javascript” >
      function welcome( )
       {
         document.write ( “welcome to DeveloperStudio” )
       }
    < /script >

    < script type=”text/javascript” >
        welcome ( ) ;
     </script>
  < /body >
< /html >

کد
welcome to DeveloperStudio خروجی

نکته : یک تابع را می توان توسط رویدادهای یک کنترل HTML مثل یک دکمه فرمان نیز فراخوانی کرد . در این حالت باید مقدار رویداد مورد نظر را در تگ کنترل ، برابر نام تابع در نظر گرفت . به مثال زیر دقت کنید .
مثال : در مثال زیر تابع welcome که در مثال قبل توسط یک اسکریپت دیگر فراخوانی شده بود ، در اینجا توسط رویداد کلیک ( onclick ) دکمه فرمان btnclick فراخوانی می شود . برای فراخوانی تابع بر روی دکمه فرمان مثال کلیک کنید .

Example

< html >
  < head >
    < title > عنوان صفحه < /title >
  < /head >
  < body >
    < script type=”text/javascript” >
      function welcome( )
       {
         document.write ( “welcome to DeveloperStudio” )
       }
    < /script >

    < input type=”button” id=”Button1″ onclick=”welcome( )” value=” click me ! ” / >
  < /body >
< /html >

کد

خروجی

نحوه تعریف پارامتر برای یک تابع :

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

شکل کلی تعریف پارامتر برای یک تابع بع صورت زیر است :

funciton   نام تابع   ( Parametr 1 , Parametr 2 , … )
  {
    دستورات تابع
  }

مثال :  function multiple ( var num1 , var num2 )
         {
           دستورات تابع
         }

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

function   نام تابع g ( Parametr 1 مقدار , Parametr 2 مقدار , … )
  {
    دستورات تابع
  }

مثال : در مثال زیر تابع multiple را که در بالا تعریف کرده بودیم با تعیین پارامترهای لازم ، فراخوانی کرده ایم :

multiple ( 2 , 10 ) ;

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

مثال : در مثال زیر تابع multiple با دو پارامتر num1 و num2 تعریف شده است ، که این تابع این دو عدد را در هم ضرب کرده و به عنوان خروجی روی صفحه نمایش می دهد . این تابع در یک اسکریپت دیگر توسط تابع Call_Function فراخوانی می شود . این تابع دو عدد را از دو کادر متن مثال دریافت کرده و به ترتیب آنها را در متغیرهای a , b ذخیره می کند .  سپس آن را در هنگام فراخوانی به تابع multiple پاس می دهد . توجه شود که از متغیر های دیگر نیز می توان برای فراخوانی استفاده کرد . برای مشاهده خروجی ۲ عدد را در کادر متن ها وارد کرده و بر روی دکمه فرمان multiple کلیکگ کنید .

Example

< script type=”text/javascript” >
  function multiple ( num1 , num2 )
    {
      document.write ( num1 * num2 ) ;
    }
< /script >

< script type=”text/javascript” >
  function Call_Function ( )
    {
        var a = Text1.value ;
        var b = Text2.value ;
        multiple ( a , b ) ;    فراخوانی تابع با پارامترهای لازم و چاپ خروجی
    }
< /script >
< input type=”button” id=”Button2″ onclick=”Call_Function( )” value=” click me ! ” />
< input type=”text” id=”Text1″ />
< input type=”text” id=”Text2″ />

کد
Number 1 :    Number 2 :   
خروجی

نحوه تعریف مقدار بازگشی برای یک تابع :

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

return  ( مقدار بازگشتی ) ;

نکته : مقدار بازگشتی ، می تواند یک رشتته یا عدد ، یک متغیر و یا یک عبارت محاسباتی باشد .

مثال : تابع multiple را در مثال قبل با دستور return بازنویسی کرده ایم . در این حالت تابع به جای استفاده از دستور document.write با دستور return ، مقدار را برای چاپ خروجی به تابع Call_Function بر می گرداند :

Example

< script type=”text/javascript” >
  function multiple ( num1 , num2 )
    {
      return ( num1 * num2 ) ;
    }
< /script >

< script type=”text/javascript” >
  function Call_Function ( )
    {
        var a = Text1.value ;
        var b = Text2.value ;
        document.write (multiple ( a , b )) ;    فراخوانی تابع با پارامترهای لازم
    }
< /script >
< input type=”button” id=”Button2″ onclick=”Call_Function( )” value=” click me ! ” />
< input type=”text” id=”Text1″ />
< input type=”text” id=”Text2″ />

کد
Number 1 :    Number 2 :   
خروجی

شما می‌توانید دیدگاه‌های این مطلب را دنبال کنید، بوسیله‌ی RSS 2.0 خوراک.