در مورد کلمه کلیدی this در متد داخل یک شی

پرسیده شده
فعالیت 936 روز پیش
دیده شده 334 بار
1

سلام استاد چرا کلمه  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() به خود این شی اشاره نکرده 

 

فایل پیوست

Mahdiabedini
Mahdiabedini

17 مهر 00

0
حذف شده

سلام

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

پیشنهاد میکنم همین کد را یکبار در حالت 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

 

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

موفق باشید

فایل پیوست

مهرداد دادخواه

توسط

مهرداد دادخواه

17 مهر 00

0
حذف شده

سلام 

 

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

فایل پیوست

amir tavakolian

توسط

amir tavakolian

17 مهر 00