021-28423015

فراخوانی تابع در JavaScript

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

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

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

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

شایع است که به جای "call a function" از عبارت "invoke a function" استفاده شود.

همچنین مشترک است که می گویند "فراخوانی یک تابع"، "شروع یک تابع"، یا "اجرای یک تابع".

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

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

فرخوانی تابع
 function myFunction(a, b) {
    return a * b;
}
myFunction(10, 2);           // Will return 20 
مشاهده مثال

تابع فوق به هیچ شیء تعلق ندارد. اما در جاوا اسکریپت همیشه یک شیء پیش فرض سراسری وجود دارد.
در HTML، شیء پیش فرض جهانی، صفحه HTML است، بنابراین تابع بالای "متعلق به" صفحه HTML است.
در مرورگر، صفحه به عنوان window  مرورگر است. عملکرد بالا به طور خودکار یک تابع window می شود.
myFunction () و window.myFunction () یک تابع مشابه است:

window در تابع
 function myFunction(a, b) {
    return a * b;
}
window.myFunction(10, 2);    // Will also return 20 
مشاهده مثال

این یک روش معمول برای فراخوانی یک تابع جاوا اسکریپت است، اما یک عمل بسیار خوبی نیست.
متغیرهای سراسری، متد ها یا توابع می توانند به راحتی تضادهای نام و اشکالات در شیء سراسری ایجاد کنند.

کلیدواژه this

در جاوا اسکریپت، چیزی که this نامیده می شود، جسم است که کد فعلی را «دارای» است.
ارزش this ، هنگامی که در یک تابع استفاده می شود، شیئی است که "دارای" تابع است.

توجه داشته باشید که this یک متغیر نیست. this کلمه کلیدی است. شما نمی توانید ارزش this را تغییر دهید.

شی سراسری

هنگامی که یک تابع بدون یک شیء صاحب نامیده می شود، ارزش این شیء سراسری می شود.
در مرورگر وب، شیء سراسری window  مرورگر است.
این مثال شیء window را به عنوان مقدار این باز می گرداند:

شی سراسری
var x = myFunction();            // x will be the window object

function myFunction() {
   return this;
}
مشاهده مثال

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

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

مثال زیر یک شی (myObject) با دو ویژگی (firstName and lastName) و یک روش (fullName) ایجاد می کند:

فراخوانی یک تابع به عنوان یک روش
 var myObject = {
    firstName:"John",
    lastName: "Doe",
    fullName: function () {
        return this.firstName + " " + this.lastName;
    }
}
myObject.fullName();         // Will return "John Doe" 
مشاهده مثال

متد fullName تابع است. این تابع متعلق به شی است. myObject صاحب تابع است.
چیزی که this نامیده می شود، شیئی است که «کد جاوا اسکریپت» را «دارای» است. در این مورد ارزش myObject، است.
امتحانش کن! روش fullName را برای به دست آوردن ارزش این تغییر دهید:

مثال فرخوانی
 var myObject = {
    firstName:"John",
    lastName: "Doe",
    fullName: function () {
        return this;
    }
}
myObject.fullName();          // Will return [object Object] (the owner object) 
مشاهده مثال

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

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

قراخوانی تابع با استفاده از ساختار تابع
// This is a function constructor:
function myFunction(arg1, arg2) {
    this.firstName = arg1;
    this.lastName  = arg2;
}

// This creates a new object
var x = new myFunction("John", "Doe");
x.firstName;                             // Will return "John" 
مشاهده مثال

فراخوانی سازنده یک شیء جدید ایجاد می کند. این شیء جدید خواص و روش ها را از سازنده اش به ارث می برد.

 


نظر شما

لطفا نام و نام خانوادگی خود را وارد کنید
لطفا ایمیل خود را وارد کنید لطفا ایمیل صحیح وارد کنید.
لطفا متن نظر خود را وارد کنید
>

یادگیری JavaScript

مقالات و دروس

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

برای اطلاع از بسته ها ، تخفیف های استثنایی و تازه های ما به خبرنامه وب مهراز بپیوندید.

لطفا شماره همراه صحیح وارد کنید.
لطفا ایمیل صحیح وارد کنید.

مقالات مرتبط