سلام به شما کاربران عزیز، حالتون خوبه ؟ امیدوارم که شاد باشید.درموردمتدهامیخوام کمی توضیح بدم.
متدهای شی (object methods)
همان طور که در مباحث پیشین به آن اشاره شد، method یا به فارسی توابع عملیاتی هستند که روی اشیا انجام می دهیم.
متد در جاوا اسکریپت، یک خاصیت (property) است که تعریف تابع (function definition) را دربردارد.
Property
Value
firstName
John
lastName
Doe
age
۵۰
eyeColor
blue
fullName
function() {return this.firstName + ” ” + this.lastName;}
متدها، توابعی هستند که به صورت خاصیت های شی (object property) ذخیره می شوند.
دسترسی به متدهای شی
به منظور ایجاد متد شی (object method) از ساختار نگارشی (syntax) زیر استفاده می کنیم:
methodName : function() { code lines }
حال جهت دستیابی به متد شی، دستور نگارشی زیر را بکار می گیرم:
objectName.methodName()
۱
برای مثال تابع fullName()، متد شی person محسوب می شود و fullname خاصیت (property) شی تلقی می گردد.
خاصیت fullname را هنگامی که با ” ()”صدا می زنید (فراخوانی می کنید)، به صورت تابع (function) اجرا می گردد.
این مثال به متد ” fullName() ” شی person دسترسی پیدا می کند:
چنانچه سعی کنید به خاصیت fullname بدون ” ()” دسترسی پیدا کنید، در جواب function definition (تعریف تابع) بازیابی می شود:
name = person.fullName;
استفاده از متدها توکار
این مثال سعی دارد با استفاده از متد toUpperCase() شی String، حروف کوچک متن را به حروف بزرگ تبدیل کند:
var message = “Hello world!”;
var x = message.toUpperCase();
مقدار شی x پس از اجرای کد مثال فوق HELLO WORLD! خواهد بود.
افزودن متدهای جدید به یک شی
تعریف و اضافه کردن متدهای جدید به یک شی، باید داخل تابع سازنده (constructor function) انجام می شود:
function person(firstName, lastName, age, eyeColor) {
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
this.eyeColor = eyeColor;
this.changeName = function (name) {
this.lastName = name;
}
}
تابع changeName()، مقدار name را به خاصیت lastName شی person اختصاص می دهد:
حال خود می توانید این مثال را امتحان کنید:
myMother.changeName(“Doe”);
با جایگزین کردن myMother با کلیدواژه ی this، به زبان جاوا اسکریپت می فهمانیم که در حال حاضر به کدام شی اشاره می کنیم.