⊗jsPmCxUFC 434 of 505 menu

คอนเท็กซ์ของฟังก์ชันที่ไม่ได้ผูกไว้ใน JavaScript

มาดูกันว่า จะเกิดอะไรขึ้นถ้าในฟังก์ชัน ระบุ this แต่ไม่ได้ผูกมันไว้ กับองค์ประกอบใด ๆ ดังนี้:

function func() { console.log(this); } func();

ในกรณีนี้ ผลลัพธ์ขึ้นอยู่กับว่า เราอยู่ในโหมด strict หรือไม่ หากไม่ได้เปิดโหมด strict ใน this จะเก็บ reference ไปยัง window:

function func() { console.log(this); // อ้างอิงไปยัง window } func();

แต่ถ้าเปิดโหมด strict แล้ว ใน this จะ เก็บค่าเป็น undefined:

"use strict"; function func() { console.log(this); // undefined } func();

จากที่กล่าวมาข้างต้น อาจดูเหมือนว่า ในโหมด strict this จะเป็น undefined เสมอ ไม่ใช่เลย! หากเพียงแค่ แสดงค่า this นอกฟังก์ชัน ค่านั้น จะยังคงเป็น reference ไปยัง window โดยไม่ขึ้นกับ โหมด:

"use strict"; console.log(this); // ใน this เป็น reference ไปยัง window

สรุป

ในฟังก์ชันใดก็ตามสามารถเขียน this ได้ สิ่งนี้จะไม่ทำให้เกิดข้อผิดพลาดใด ๆ ใน JavaScript แต่สิ่งที่อยู่ใน this นี้ จะยังไม่ถูกกำหนดจนกว่าฟังก์ชันจะถูกเรียกใช้ และในการเรียกใช้ฟังก์ชันแต่ละครั้ง this อาจรับค่าได้ต่างกัน ทั้งหมดขึ้นอยู่ กับคอนเท็กซ์ที่ฟังก์ชันถูกเรียกใช้

ไทย
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣTürkmenTürkçeЎзбекOʻzbekTiếng Việt
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ