٪۴۰ تخفیف تابستانه شروع شد! بزرگترین حراج سال ما

به ما بپیوندید

آموزش فراخوانی عملکرد JavaScript

کدهای درون جاوا اسکریپت functionهنگامی که “چیزی” آن را فراخوانی می کند ، اجرا می شوند. فراخوانی عملکرد JavaScript هنگام تعریف تابع ، کد داخل یک تابع اجرا نمی شود . هنگام فراخوانی عملکرد ، کد داخل یک تابع اجرا می شود . معمولاً استفاده از اصطلاح ” فراخوانی…

محمد یوسفی

27 جولای 2021

کدهای درون جاوا اسکریپت functionهنگامی که “چیزی” آن را فراخوانی می کند ، اجرا می شوند.


فراخوانی عملکرد JavaScript

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

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

معمولاً استفاده از اصطلاح ” فراخوانی یک تابع ” به جای ” فراخوانی یک تابع ” است.

همچنین معمولاً می توان گفت “فراخوانی یک تابع” ، “شروع یک تابع” یا “اجرای یک تابع”.

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


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

مثال

function myFunction(a, b) {
  return a * b;
}
myFunction(10, 2);           // Will return 20

عملکرد بالا به هیچ شیئی تعلق ندارد. اما در JavaScript همیشه یک شی جهانی پیش فرض وجود دارد.

در HTML شی جهانی پیش فرض خود صفحه HTML است ، بنابراین عملکرد بالا “متعلق به” صفحه HTML است.

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

myFunction () و window.myFunction () همان عملکرد است:

مثال

function myFunction(a, b) {
  return a * b;
}
window.myFunction(10, 2);    // Will also return 20

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


در جاوا اسکریپت ، چیزی که فراخوانی می شود this، ابژه ای است که کد فعلی را “در اختیار دارد”.

مقدار this، هنگامی که در یک تابع استفاده می شود ، جسمی است که “مالک” آن تابع است.

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

نکته: اطلاعات بیشتر در مورد thisکلمه کلیدی را در JS this Keyword بخوانید .


شی جهانی

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

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

این مثال شی پنجره را به عنوان مقدار this:

مثال

let x = myFunction();            // x will be the window object

function myFunction() {
  return this;
}

فراخوانی یک تابع به عنوان یک تابع جهانی ، باعث می شود که مقدار این موضوع جهانی باشد.
استفاده از شی window پنجره به عنوان یک متغیر می تواند به راحتی برنامه شما را خراب کند.


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

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

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

مثال

const myObject = {
  firstName:"John",
  lastName: "Doe",
  fullName: function () {
    return this.firstName + " " + this.lastName;
  }
}
myObject.fullName();         // Will return "John Doe"

نام و نام خانوادگی یک تابع است. تابع متعلق به جسم است. myObject صاحب عملکرد است.

چیزی که فراخوانی می شود this، ابژه ای است که کد JavaScript را “در اختیار دارد”. در این مورد ارزش this است myObject .

امتحانش کن! روش fullName را تغییر دهید تا مقدار this:

مثال

const myObject = {
  firstName:"John",
  lastName: "Doe",
  fullName: function () {
    return this;
  }
}

// This will return [object Object] (the owner object)
myObject.fullName();

فراخوانی یک تابع به عنوان یک روش شی ، باعث می شود که مقدار this خود شی itself باشد.


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

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

به نظر می رسد که شما یک تابع جدید ایجاد کرده اید ، اما از آنجا که توابع JavaScript اشیایی هستند ، شما در واقع یک شی جدید ایجاد می کنید:

مثال

// This is a function constructor:
function myFunction(arg1, arg2) {
  this.firstName = arg1;
  this.lastName  = arg2;
}

// This creates a new object
const myObj = new myFunction("John", "Doe");

// This will return "John"
myObj.firstName;

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

thisکلمه کلیدی در سازنده یک ارزش ندارد.
مقدار thisشی object جدیدی است که هنگام فراخوانی عملکرد ایجاد می شود.

منبع

مطالب مرتبط

0 0 رای ها
امتیازدهی به مقاله
اشتراک در
اطلاع از
guest
0 نظرات
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها