𝗖𝗢𝗢𝗟𝗬 𝗖𝗢𝗗𝗘 | کولی کد
1.71K subscribers
217 photos
81 videos
8 files
360 links
اینجا قراره برنامه نویسی رو خیلی ساده و با حال خوب یاد بگیریم 🚀

📺 𝗬𝗢𝗧𝗨𝗕𝗘 : https://rb.gy/37siuq

📷 𝗜𝗡𝗦𝗧𝗔𝗚𝗥𝗔𝗠 : https://rb.gy/jmz946

👥 𝗚𝗥𝗢𝗨𝗣 : @CoolyCoder

𝗔𝗗𝗦 : @ADS_CoolyCode

✌️ 𝗣𝗩 : @CoolyCode_Support
Download Telegram
𝗖𝗢𝗢𝗟𝗬 𝗖𝗢𝗗𝗘 | کولی کد
#javascript #js_trick #object * متد Object.defineProperty در جاوااسکریپت چیست ؟  * #part2 توی پارت قبلی به معرفی متد Object.defineProperty پرداختیم و ویژگی های کلیدی و ارگومان های مختلف این متد رو بررسی کردیم : obj | prop | descriptor و متوجه شدیم که با…
#javascript #js_trick #object


* متد Object.defineProperty در جاوااسکریپت چیست ؟  *
#part3

توی پارت های قبلی ( یک و دو ) به معرفی متد Object.defineProperty پرداختیم و ویژگی های کلیدی و ارگومان های مختلف این متد رو بررسی کردیم.

حالا توی این پست قراره که پروپرتی های get و set که متعلق به آرگومان descriptor هستند رو باهم بررسی کنیم.


مفهوم getter چیست ؟

گِتِر تابعی است که هر زمان به مقدار یک ویژگی دسترسی پیدا می‌کنید، فراخوانی می‌شود.
به جای بازگرداندن مقدار مستقیم ویژگی، getter می‌تواند یک محاسبه انجام دهد یا مقدار را از منبع دیگری دریافت کند.

مفهوم setter چیست ؟

سِتِر تابعی است که هر زمان مقداری به یک ویژگی نسبت داده می‌شود، فراخوانی می‌شود.
به جای جایگزینی مستقیم مقدار ویژگی، setter می‌تواند مقدار جدید را تغییر دهد یا قبل از ذخیره سازی آن، یک عملیات اعتبارسنجی انجام دهد.

بریم تو مثال عملی ببینیم چیکار میکنند 🚀

const obj = {};

let value = 0;

Object.defineProperty(obj, 'prop', {
    get() {
        return value;
    },
    set(newValue) {
        value = newValue + 1;
    },
    configurable: true,
    enumerable: true
});

obj.prop = 10;
console.log(obj.prop);


set :
وقتی obj.prop = 10 را می‌نویسیم، در واقع setter فراخوانی می‌شود و مقدار value به ۱۱ تغییر می‌کند.

get :
وقتی console.log(obj.prop) را می‌نویسیم، در واقع getter فراخوانی می‌شود و مقدار فعلی value که ۱۱ است در خروجی چاپ خواهد شد.

کاربردهای عملی set و get

محاسبه مقادیر : می‌توانید از getter برای محاسبه مقادیر بر اساس مقادیر دیگر استفاده کنید. 👇

const person = {
   firstName: "ali",
   lastName: "ahmadi"
};

Object.defineProperty(person, 'fullName', {
  get() {
    return ${this.firstName} ${this.lastName}.toUpperCase();
  }
});

console.log(person.fullName);

خروجی :
ALI AHMADI


اعتبارسنجی داده‌ها : می‌توانید از setter برای اطمینان از اینکه مقادیر ورودی معتبر هستند، استفاده کنید. 👇

const person = {};

Object.defineProperty(person, 'age', {
  get() {
    return this._age;
  },
  set(newAge) {
    if (newAge < 0) {
      throw new Error('سن نمی‌تواند منفی باشد.');
    }
    this._age = newAge;
  }
});

person.age = 30;
console.log(person.age); // خروجی: 30

try {
  person.age = -5;
} catch (error) {
  console.error(error.message); // خروجی: سن نمی‌تواند منفی باشد.
}


و این هم از پارت آخر متد Object.defineProperty

یک مقدار طولانی شد به این دلیل که دوسداشتم این متد رو به خوبی درک کنید ❤️

Channel | YouTube | Instagram
🔥2🖕1