شما اینجا هستید

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

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

تعریف تابع

تعریف تابع ( همچنین اعلان تابع هم نام دارد) شامل واژگان کلیدی زیر است:

  • نام تابع

  • آرگومانهای داده شده به تابع که درون پرانتز قرار دارند و با کاما از هم جدا شده اند.

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

برای مثال، کد زیر یک تابع ساده به نام square را تعریف میکند:

function square(number) {
  return number * number;
}

تابع square یک آرگومان به نام number به عنوان ورودی میگیرد. تابع از یک دستور که مقدار بازگشتی تابع که حاصلضرب مقدار متغیر number در خودش است را برمیگرداند تشکیل شده است. دستور return مقدار بازگشتی توسط تابع را مشخص میکند.

پارامترهای اولیه (مانند number) با مقدار به تابع داده میشود؛ مقدار در داخل تابع استفاده میشود، اما اگر تابع مقدار پارامتر را تغییر دهد، این تغییر به طور سراسر منعکس نمیگردد.

اگر یک شی (مانند آرایه یا شی) را به عنوان پارامتر به تابع بدهیم و تابع ویژگی های شی را تغییر بدهد، تغییرات در خارج از تابع مانند مثال زیر قابل مشاهده خواهند بود:

function myFunc(theObject) {
  theObject.make = "Toyota";
}

var mycar = {make: "Honda", model: "Accord", year: 1998};
var x, y;

x = mycar.make; // x gets the value "Honda"

myFunc(mycar);
y = mycar.make; // y gets the value "Toyota"
                // (the make property was changed by the function)

عبارت تابع (استفاده از تابع مانند یک عبارت)

همینطور که تابع اعلان شده در بالا از لحاظ دستوری مانند یک دستور (بیانیه) تعریف شده بود، توابع میتوانند توسط عبارت تابع نیز ایجاد بگردند. مانند توابع ناشناس؛ آن نباید نام داشته باشد. برای مثال، تابع square میتواند به شکل زیر تعریف گردد.

function myFunc(theObject) {
  theObject.make = "Toyota";
}

var mycar = {make: "Honda", model: "Accord", year: 1998};
var x, y;

x = mycar.make; // x gets the value "Honda"

myFunc(mycar);
y = mycar.make; // y gets the value "Toyota"
                // (the make property was changed by the function)

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

var factorial = function fac(n) { return n<2 ? 1 : n*fac(n-1) };

console.log(factorial(3));

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

function map(f,a) {
  var result = [], // Create a new Array
      i;
  for (i = 0; i != a.length; i++)
    result[i] = f(a[i]);
  return result;
}
map(function(x) {return x * x * x}, [0, 1, 2, 5, 10]);

در جاوا اسکریپت، یک تابع میتواند بر اساس یک شرط تعریف بشود. برای مثال، تعریف تابع زیر، myFunc را فقط اگر num برابر با صفر شود تعریف (مقداردهی) میکند:
var myFunc;
if (num == 0){
  myFunc = function(theObject) {
    theObject.make = "Toyota"
  }
}

 

افزودن دیدگاه جدید

دیدگاه

  • تگ‌های HTML مجاز: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • خطوط و پاراگراف‌ها بطور خودکار اعمال می‌شوند.
  • نشانی صفحه‌ها وب و پست الکترونیک بصورت خودکار به پیوند تبدیل می‌شوند.

Plain text

  • تگ‌های HTML مجاز نیستند.
  • نشانی صفحه‌ها وب و پست الکترونیک بصورت خودکار به پیوند تبدیل می‌شوند.
  • خطوط و پاراگراف‌ها بطور خودکار اعمال می‌شوند.
كد امنيتي
این پرسش برای جلوگیری از ارسال اسپمهای اتوماتیک است.