آموزش متدها و this در جاوا اسکریپت
در این آموزش به کمک مثال های مختلف با متدهای شی و کلمه کلیدی this در جاوا اسکریپت (JavaScript) آشنا خواهید شد.
می توان برای اشیا در جاوا اسکریپت تابع تعریف کرد.
// متد برای شی
let person = {
name: ‘John’,
greet: function() { console.log(‘hello’); }
};
در اینجا شی person دارای دو ویژگی با کلیدهای name و greet با مقدار رشته ای و مقدار تابع است.
به طور کلی متد در جاوا اسکریپت یک ویژگی از شی است که مقدار آن یک تابع است.
دسترسی به متدهای شی
با استفاده از علامت گذاری نقطه می توانید به متد شی دسترسی پیدا کنید. ساختار:
objectName.methodKey()
با فراخوانی نام شی و کلید مرتبط با متد همراه با () می توانید به آن متد دسترسی پیدا کنید در حالیکه برای دسترسی به دیگر ویژگی های شی فقط نام شی را همراه با کلید به کار می برید.
// دسترسی به متد و ویژگی شی
let person = {
name: ‘John’,
greet: function() { console.log(‘hello’); }
};
// دسترسی به ویژگی
person.name; // John
// دسترسی به متد
person.greet(); // hello
برای دسترسی به متد greet به جای person.greet از ()person.greet استفاده می شود.
اگر person.greet به کار ببرید تعریف تابع را به شما می دهد.
person.greet; // function() { console.log(‘hello’); }
متدهای داخلی در جاوا اسکریپت
جاوا اسکریپت متدهای داخلی زیادی دارد. مثال،
let number = ‘23.32’;
let result = parseInt(number);
console.log(result); // 23
متد ()parseInt یکی از متدهای شی Number است که اینجا متغیر number را به عنوان آرگومان دریافت کرده و رشته عددی را به عدد صحیح تبدیل می کند.
شیء Number امکان کار با اعداد را فراهم می کند و دارای متدهای مختلفی مانند متد()parseInt است.
اضافه کردن یک متد به یک شی در جاوا اسکریپت
می توانید متدها و ویژگی های شی را بعد از تعریف آن اضافه کنید. مثال،
// ساخت شی
جاوا، جاوا اسکریپت رو قورت بده! بدون کلاس، سرعت 2 برابر، ماندگاری 3 برابر، پولسازی عالی با توسعه وب، ماشین لرنینگ و ... کتابخانه های پیشرفته جاوا اسکریپت و ... دانلود:
let student = { };
// اضافه کردن ویژگی
student.name = ‘John’;
// اضافه کردن متد
student.greet = function() {
console.log(‘hello’);
}
// دسترسی به متد
student.greet(); // hello
در مثال بالا، ابتدا شی خالی student ساخته شده و سپس ویژگی name به آن اضافه می شود. به همین ترتیب متد greet نیز به شی اضافه شده است.
کلمه کلیدی this در جاوا اسکریپت
برای دسترسی به ویژگی های شی در متدهای همان شی باید از کلمه کلیدی this استفاده کنید. مثال زیر را در نظر بگیرید:
let person = {
name: ‘John’,
age: 30,
// this.name با استفاده از name دسترسی به ویژگی
greet: function() { console.log(‘The name is’ + ‘ ‘ + this.name); }
};
person.greet();
خروجی
The name is John
در این مثال شی person دارای ویژگی های name و age و متد greet است.
برای دسترسی به ویژگی name از شی در متد greet از کلمه کلیدی this استفاده شده است. کلمه کلیدی this همراه با نقطه (.) و کلید ویژگی آورده می شود.
نکته: در جاوا اسکریپت زمانیکه کلمه کلیدی this با متد شی استفاده شود به شی اشاره می کند. this به شی محدود می شود.
تابع داخل شی نیز می تواند متغیرهای خودش را داشته باشد مانند هر تابع طبیعی. در مثال زیر متغیر surname، متغیر تابع greet در شی است.
let person = {
name: ‘John’,
age: 30,
greet: function() {
let surname = ‘Doe’;
console.log(‘The name is’ + ‘ ‘ + this.name + ‘ ‘ + surname); }
};
person.greet();
خروجی
The name is John Doe
چقدر عالی this مفهومش رو توضیح دادین .سپاس فراوان
پاسخ