گتر و ستر جاوا اسکریپت

آموزش Getter و Setter در جاوا اسکریپت

در این آموزش به کمک مثال های مختلف با متدهای Getter و Setter در جاوا اسکریپت (JavaScript) آشنا خواهید شد.

در جاوا اسکریپت دو نوع ویژگی (property یا خصوصیت) برای شی وجود دارد:

 


جاوا اسکریپت

توی این پک فوق العاده، جاوا اسکریپت رو جوری یاد میگیری که تو هیچ کلاس آموزشی یا پک دیگه ای نه دیدی نه شنیدی! بدون هیچ کلاسی، با جاوا اسکریپت اپلیکیشن بزن، پروژه محور یاد بگیر و حسابی پول در بیار! 


 

  1. ویژگی های داده ای (Data properties)
  2. ویژگی های دستیاب (Accessor properties)

ویژگی داده ای

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

let student = {

// ویژگی داده ای

firstName: ‘Monica’

};

ویژگی دستیاب

در جاوا اسکریپت ویژگی های accessor (اکسسور) یا دستیاب متدهایی هستند که مقدار یک شی را دریافت یا تنظیم می کنند. برای این کار از دو کلمه کلیدی استفاده می شود:

  • get- تعریف متد دریافت کننده (getter) برای بدست آوردن مقدار ویژگی
  • set- تعریف متد تنظیم کننده (setter) برای تعیین مقدار ویژگی

Getter در جاوا اسکریپت

در جاوا اسکریپت از متدهای Getter برای دسترسی به ویژگی های یک شی استفاده می شود. مثال،

let student = {

// ویژگی داده ای

firstName: ‘Monica’,

//accessor ویژگی (getter)

get getName() {

return this.firstName;

}

};

// دسترسی به ویژگی داده ای

console.log(student.firstName); // Monica

// getter دسترسی به متد

console.log(student.getName); // Monica

// دسترس به صورت متد

console.log(student.getName()); // error

در این برنامه یک متد getter به نام getName() برای دسترسی به ویژگی firstName ساخته شده است.

get getName() {

return this.firstName;

}

نکته: برای ساخت یک متد getter از کلمه کلیدی get استفاده می شود. برای دسترسی نیز آن را مانند یک ویژگی می نویسیم نه مثل تابع (یا متد).

student.getName;

اگر به مقدار آن به صورت یک متد دسترسی پیدا کنید، خطا رخ می دهد.

console.log(student.getName()); // error

Setter در جاوا اسکریپت

متدهای Setter در جاوا اسکریپت برای تغییر مقادیر ویژگی های شی استفاده می شود. مثال،

let student = {

firstName: ‘Monica’,

//accessor ویژگی(setter)

set changeName(newName) {

this.firstName = newName;

}

};

console.log(student.firstName); // Monica

// setter تغییر (تنظیم) مقدار یک شی با استفاده از

student.changeName = ‘Sarah’;

console.log(student.firstName); // Sarah

در مثال بالا از متد setter برای تغییر مقدار یک شی استفاده شده است.

set changeName(newName) {

this.firstName = newName;

}

نکته: برای ساخت یک متد setter از کلمه کلیدی set استفاده می شود.

همانطور که در برنامه بالا می بینیم، ابتدا مقدار firstName برابر با Monica است سپس مقدار آن به Sarah تغییر داده می شود.

student.changeName = ‘Sarah’;

نکته: Setter باید دقیقاً یک پارامتر داشته باشد.

()Object.defineProperty در جاوا اسکریپت

در JavaScript می توانید از متد ()Object.defineProperty برای اضافه کردن متدهای getter و setter استفاده کنید. مثال،

let student = {

firstName: ‘Monica’

}

// getter ویژگی دریافت کننده

Object.defineProperty(student, “getName”, {

get : function () {

return this.firstName;

}

});

// setter ویژگی تنظیم کننده

Object.defineProperty(student, “changeName”, {

set : function (value) {

this.firstName = value;

}

});

console.log(student.firstName); // Monica

// تغییر مقدار ویژگی

student.changeName = ‘Sarah’;

console.log(student.firstName); // Sarah

در مثال بالا از ()Object.defineProperty برای دسترسی و تغییر ویژگی یک شی استفاده شده است. ساختار استفاده از آن به صورت زیر است:

Object.defineProperty(obj, prop, descriptor)

متد ()Object.defineProperty سه آرگومان دارد:

  • obj، اسم شی است.
  • prop، اسم ویژگی موردنطر است.
  • Descriptor یک شی است که ویژگی را توصیف می کند.

تفاوت پک های حرفه ای ما با آموزشهای رایگان: بطور خلاصه از زمین تا آسمان! 1-پکها، جدیدترین نسخه نرم افزارها را آموزش می دهند با قابلیت های بسیار بیشتر. 2-پکها توسط متخصص آن نرم افزار، به صورت کاملا پروژه محور و با حل چالش هایی که در مسیر کار عملی و حرفه ای با آن روبرو می شوید تهیه شده اند و بعد از استفاده، کاملا برای بازار کار آماده اید! 3- متد این پکها کاملا کار شده و تا ماهها، در ذهن تان ماندگارند و یادگیری بسیار سریعتر و کاملتری خواهید داشت. آموزشهای رایگان فقط دستورات نرم افزارها را (آنهم ناقص) بیان می کنند و تازه برای ورود به بازار باید ماهها تجربه عملی هم کسب کنید !!

turned_in

چرب زبان

با این اپلیکیشن ساده، هر زبانی رو فقط با 5 دقیقه در روز، توی 80 روز مثل بلبل حرف بزن! بهترین متد روز، تقویت حافظه، آموزش تصویری. یادگیری زبان کلید یادگیری هر مهارتی در قرن 21 !


حتما بخوانید!

1 دیدگاه. ارسال دیدگاه جدید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این فیلد را پر کنید
این فیلد را پر کنید
لطفاً یک نشانی ایمیل معتبر بنویسید.

فهرست