🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ Mahdiabedini
در مورد کلمه کلیدی this در متد داخل یک شی
حسین دادخواه حل شده توسط حسین دادخواه

سلام استاد چرا کلمه  this داخل این object به window اشاره کرده مگه نباید به خود object اشاره میکرد؟

let testObject ={
    name:"mahdi",
    list:[1,2,3,4,5,6],
    testFunc:function () {
        // console.log(this);
        this.list.forEach(function (element) {
            console.log(this);
        })
    }
}

 

استاد چرا اینجا this داخل console.log() به خود این شی اشاره نکرده 

 

سلام

از دانشجوهایی مثل شما که با دقت موارد تست میکنم خوشم میاد :)

پیشنهاد میکنم همین کد را یکبار در حالت strict mode هم تست کنید

 

و بعد پیشنهاد میکنم این کد را هم تست کنید:


let testObject ={
   name:"mahdi",
   list:[1,2,3,4,5,6],
   testFunc:function () {
       console.log(this);
       this.list.forEach(function (element) {
           console.log(this);
       }, this);
   }
};

 

قسمت ۱۰٫۴٫۳ استاندارد اکمااسکریپت را هم بخونید

یعنی این لینک

https://262.ecma-international.org/5.1/#sec-10.4.3

 

چیزی که یاد گرفتید را اینجا بنویسید بقیه هم استفاده کنند

موفق باشید

بهترین پاسخ
حسین دادخواه ۱۷ مهر ۱۴۰۰، ۰۸:۵۴

سلام 

 

علاوه بر روشی که استاد گفتن؛ شما میتونید از arrow function استفاده کنید تا این مشکل حل بشه

amir tavakolian ۱۷ مهر ۱۴۰۰، ۱۱:۵۸