متدهای اشیاء

از موتو کد، دانشنامهٔ برنامه‌نویسی

مثال[ویرایش | ویرایش]

var person = {
  firstName: "John",
  lastName : "Doe",
  id       : 5566,
  fullName : function() {
    return this.firstName + " " + this.lastName;
  }
};


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

کلمه کلیدی this[ویرایش | ویرایش]

در یک تابع، کلمه کلیدی this به «صاحب» تابع اشاره می‌کند. [۱]

در مثال فوق، کلمه کلیدی this شیء person است که «صاحب» متد fullName است.

به عبارت دیگر، this.firstName به معنای ویژگی firstName این شیء است.

درمورد کلمه کلیدی this می‌توانید مطالب بیشتری را در فصل کلمه کلیدی this در جاوا اسکریپت بخوانید.

متدهای جاوا اسکریپت[ویرایش | ویرایش]

متدهای جاوا اسکریپت عملیات‌هایی هستند که روی اشیاء انجام می‌شوند.

یک متد در جاوا اسکریپت یک ویژگی است که شامل یک تابع می‌شود.

ویژگی مقدار
firstName John
lastName Doe
age ۵۰
eyeColor blue
fullName function() {return this.firstName + " " + this.lastName;}
متدها توابعی هستند که به صورت ویژگی‌هایی از شیء ذخیره شده‌اند.

دسترسی به متدهای شیء[ویرایش | ویرایش]

شما می‌توانید به متدهای یک شیء به صورت زیر دسترسی پیدا کنید:

objectName.methodName()

شما به صورت کاملاً ساده fullName() را به عنوان متدی از شیء person و fullName را به عنوان یک ویژگی تعریف خواهید کرد.

ویژگی fullName زمانی که فراخوانی می‌شود (همانند یک تابع) بهمراه ( ) اجرا خواهد شد.

این مثال به متد fullName() از شیء person دسترسی پیدا می‌کند:

مثال[ویرایش | ویرایش]

name = person.fullName();


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


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

مثال[ویرایش | ویرایش]

name = person.fullName;


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


استفاده از متدهای تعبیه شده[ویرایش | ویرایش]

این مثال از متد toUpperCase() شیء string برای تبدیل حروف یک متن رشته‌ای به حروف بزرگ استفاده می‌کند:

var message = "Hello world!";
var x = message.toUpperCase();

مقدار متغیر x، بعد از اجرای کد بالا برابر خواهد بود با:

HELLO WORLD!

اضافه کردن یک متد به یک شیء[ویرایش | ویرایش]

اضافه کردن یک متد جدید به یک شیء بسیار آسان است:

مثال[ویرایش | ویرایش]

person.name = function () {
return this.firstName + " " + this.lastName;
};


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


منابع آموزشی[ویرایش]