🔥 ۴۰ درصد تخفیف ثبت‌نام دوره‌ها قبل از افزایش قیمت‌ها
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ عطیفه روزبه
در مورد کلمه کلیدی 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 استفاده کنید تا این مشکل حل بشه

کیومرث فنی‌زاده ۱۷ مهر ۱۴۰۰، ۱۱:۵۸