با سلام و خسته نباشید به اساتید و سایر دوستان
در زمان 14:14 ویدئو:
آیا این مطلب که ما مقدار myDiv.outerHTML رو تغییر میدیم و بعد هنگام لاگ کردن تغییر رو نمیبینیم با قوانین زبان جاوااسکریپت در تناقض نیست؟
این رو میفهمم که myDiv دیگه جزئی از DOM نیست و برای همین نشون داده نمیشه ولی چون هنوز یه رفرنس بهش اشاره میکنه همچنان وجود داره و از رم پاک نمیشه.
اما چرا مقدار یه متغیر که ما ست کردیم تغییر نمیکنه؟ دقیقا چه اتفاقی می افته؟
سلام
برای پاسخ به این سوال خیلی نمیخوام وارد جزئیات بشم و میخوام بدونی که این مورد رو میشه پیاده سازی کرد. یکی از روش های اون استفاده کردن از getter و setter هست که با این توابع میتونی مشخص بکنی که تغییرات یک property به چه صورتی اعمال بشه و زمانی هم که بخوای مقدار رو دریافت بکنی چه مقداری رو دریافت بکنی
برای شفاف سازی یک مثال خیلی ساده رو می نویسم
const person = {
set code(code) {
console.log(code)
},
get code() {
return 1
}
}
person.code = 55555
console.log(person.code);
نکته مهم: این صرفا یک مثال و الزامی نداره حتما اون کسانی که outerHtml رو هم پیاده سازی کرده باشند از این روش استفاده کرده باشند