به آموزشگاه مجازی سینا خوش آمدید!

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

امتیاز
(0)

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

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

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


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

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

کدهای درون یک تابع، وقتی اجرا می شوند که تابع به یکی از روش های زیر صدا زده شود(فراخوانی شود):

  • وقتی که تابع در داخل کدهای جاوا اسکریپت صدا زده شود.
  • وقتی که یک رویداد رخ دهد(وقتی یک کاربر روی یک دکمه کلیک کند).
  • اگر تابع اتوماتیک باشد و خودش خود را فراخوانی کند.

نکته: این امکان وجود دارد که یک تابع فراخوانی(invoked) شود، بدون اینکه صدا زده(called) شود. 

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

  • فراخوانی یک تابع
  • شروع یک تابع
  • اجرای یک تابع

مثال ها

تابع زیر، متن "Hello World" را برمی گرداند. اما قبل از اینکه ما آن را فراخوانی کنیم، اجرا نمی شود: 

مثال شماره 1

function sayHello() {
  return "Hello World";
}
امتحان کنید

در کدهای زیر تابع مورد نظر صدا زده شده است. اما از نتیجه ی حاصل شده استفاده نشده است. 

مثال شماره 2

function sayHello() {
  return "Hello World";
}

sayHello();
امتحان کنید

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


استفاده از مقدار برگشتی

وقتی که یک تابع، یک مقدار را برمی گرداند، ما می توانیم این مقدار را در یک متغیر ذخیره کنیم. 

مثال شماره 3

function sayHello() {
  return "Hello World";
}

let greeting = sayHello();
امتحان کنید

نمایش دادن خروجی

ما می توانیم مقدار برگشتی را به روش های مختلفی نمایش دهیم؛ بعنوان مثال می توانیم از دستور console.log() یا از HTML استفاده کنیم. 

مثال شماره 4

function sayHello() {
  return "Hello World";
}

console.log(sayHello());
امتحان کنید

مثال شماره 5

<p id="demo"></p>

<script>
function sayHello() {
  return "Hello World";
}

document.getElementById("demo").innerHTML = sayHello();
</script>
امتحان کنید

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

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

مثال شماره 6

function sayHello() {
  return "Hello World";
}

let a = sayHello();
let b = sayHello();
let c = sayHello();

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

عملگر () یک تابع را فراخوانی می کند. 

مثال شماره 7

// تبدیل فارنهایت به سلسیوس
function toCelsius(fahrenheit) {
  return (5/9) * (fahrenheit-32);
}

//  toCelcius() فراخاونی تابع
let value = toCelsius(77);
امتحان کنید

دسترسی به یک تابع بدون یک جفت پرانتز ( ) باعث می شود خود تابع برگردانده شود نه نتیجه‌ی تابع:

مثال شماره 8

function toCelsius(fahrenheit) {
  return (5/9) * (fahrenheit-32);
}

let value = toCelsius;
امتحان کنید

در مثال بالا:

دستور toCelsius به خودِ تابع رجوع می کند. 

دستور toCelsius(77) به مقدار تابع رجوع می کند. 


فراخوانی تابع در مقابل رجوع به تابع

این یک تفاوت مهم است:

دستور sayHello به خود تابع رجوع می کند. این دستور تابع را برمی گرداند. 

دستور sayHello() به نتیجه ی تابع رجوع می کند. این دستور نتیجه را برمی گرداند. 

مثال شماره 9

function sayHello() {
  return "Hello World";
}

let text = sayHello;
امتحان کنید

در مثال بالا، متغیر text خود تابع را برمی گرداند، مانند زیر:

function sayHello() { return "Hello World"; }

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

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

مثال شماره 10

function sayHello() {
  return "Hello World";
}

function showHello() {
  document.getElementById("demo").innerHTML = sayHello();
}
امتحان کنید

مثال شماره 11

<p id="demo"></p>
<button onclick="showHello()">Click Me</button>

<script>
function sayHello() {
  return "Hello World";
}

function showHello() {
  document.getElementById("demo").innerHTML = sayHello();
}
</script>
امتحان کنید

اشتباهات رایج

فراموش کردن پرانتزها ( )

sayHello به تنهایی تابع را اجرا نمی کند. 

باید از دستور sayHello() استفاده کنید. 


انتظار داشتن retuen

برخی تابع ها یک مقدار را بر نمی گردانند.


انتظار داشتن خروجی

اگر یک تابع یک مقدار را برگرداند(return کند)، باید این مقدار را با دستوراتی نمایش دهیم تا بتوانیم این مقدار را مشاهده کنیم. 

 


منبع: www.w3schools.com/js

 

  • بازدید: 36

نوشتن دیدگاه

لطفا نظرات خود را بیان کنید. به سوالات در سریع ترین زمان پاسخ داده خواهد شد.اما به نکات زیر توجه کنید:
1. سعی کنید نظرات شما مرتبط با مقاله ی مورد نظر باشد، در غیر این صورت پاسخ داده نخواهد شد.
2. سوالات خود را به صورت کوتاه بیان کنید و از پرسیدن چند سوال به طور همزمان خودداری کنید.
3. سوال خود را به طور واضح بیان کنید و از کلمات مبهم استفاده نکنید.

ارسال