💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۱۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ Erfan Soori
outerHTML
مجتبی سوری حل شده توسط مجتبی سوری

با سلام و خسته نباشید به اساتید و سایر دوستان

 

در زمان 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 رو هم پیاده سازی کرده باشند از این روش استفاده کرده باشند

بهترین پاسخ
مجتبی سوری ۲۷ اسفند ۱۳۹۹، ۰۷:۳۳