سلام وقت بخیر
یه موضوعی برای من شفاف نیست. اینکه وقتی ما برای توابع constructor میایم setter و getter درست میکنیم چه اتفاقی میفته.
"use strict";
function MyConstructor() {
this.name = "Mohammad Hassan";
this.family = "Mehrazar";
Object.defineProperties(this, {
age: {
get: function () {
return this.userAge;
},
set: function (uAge) {
this.userAge = uAge;
},
},
});
}
let newObj = new MyConstructor();
الان درک این موضوع برای من سخته که پراپرتی ای تعریف میکنیم برای آبجکتمون با نام age و setter و getter رو تعریف میکنیم براشون. متوجه نمیشم دقیقا چه اتفاقی میفته
constructor ها به برنامه ی ما این امکان رو میدن تا در زمان نیاز خود برنامه بتونه آبجکت های جدید با property های مورد نیاز تولید کنه . getter و setter هم به ما این امکان رو میدن که حین خوانده شدن یا نوشته شدن یک property عملیاتی رو انجام بدیم . مثلاً مقداری که به property داده میشه رو اعتبارسنجی بکنیم یا اصلا هربار یک مقدار جدید رو طبق یه تابع برگردونیم .
درواقع جواب سوال شما اینه که وقتی setter/getter رو برای یک property تعریف می کنیم درواقع این امکان رو به property میدیم که حین خوانده شدن (getter) و حین نوشته شدن (setter) عملیاتی رو انجام بده .
سلام وقت بخیر
به طور خلاصه، setter برای تغییر مقدار property و getter برای دریافت مقدار property استفاده میشه. باعث میشه امنیت داده بالا بره تا امکان inject داده در run time به وجود نیاد و مدیریت حافظه رو راحت می کنه و امکان بررسی شرط منطقی هم وجود داره
امیدوارم کمکتون کرده باشه