thisคีย์เวิร์ดเป็นหนึ่งในแนวคิดที่เข้าใจผิดและซับซ้อนที่สุดของ JavaScript ฉันใช้เวลาหลายปีในการทำงานกับ JavaScript และบางครั้งสถานการณ์ดังกล่าวก็ทำให้เข้าใจได้ยากว่าthisหมายถึงอะไร
ในบทความนี้ ฉันจะพยายามอธิบายให้มากที่สุดเท่าสถานการณ์ที่ฉันเจอซึ่งใช้นามสกุลthis. และอาจเป็นหนึ่งในสถานการณ์ที่อาจช่วยให้คุณเข้าใจแนวคิดthisได้ชัดเจนยิ่งขึ้น
ก่อนอื่นเรามาดูกันว่าthisหมายถึงอะไร? 🤔
ลักษณะนี้เป็นของไหล ค่าของthisการเปลี่ยนแปลงขึ้นอยู่กับcontextที่methodID calledเป็น thisหมายถึงบริบทที่ถูกเรียก
ให้เข้าใจสิ่งนี้โดยตัวอย่าง:
ในโค้ดด้านบนนี้ เราใช้thisที่ต่างกันสองที่ และค่าของthisต่างกันที่ตำแหน่งทั้งสอง ซึ่งตัดสินโดยบริบทที่เรียกโค้ดนั้น
ตอนนี้เรามาดูกันว่ามันทำงานอย่างไรในบล็อคโค้ดต่างๆ
this ภายในบริบทโลก
3. thisฟังก์ชันคอนสตรัคเตอร์ภายใน
4. thisภายในฟังก์ชันภายในอ็อบเจกต์
5. thisฟังก์ชันภายใน
6. thisภายในฟังก์ชั่นและstrict modeเปิดอยู่
นอกเหนือจากสถานการณ์ข้างต้นแล้ว เรามีแนวคิดเพิ่มเติมเกี่ยวกับความเข้าใจ และนั่นคือหน้าที่ของลูกศร thisภายในฟังก์ชันลูกศรทำงานแตกต่างกัน
ภายในฟังก์ชั่นลูกศรthisมีขอบเขตของตัวเองไม่มี มันชี้ไปที่ขอบเขตของพาเรนต์เสมอ
thisภายในฟังก์ชันลูกศร — ในตัวอย่างนี้ ขอบเขตหลักของsampleเมธอดคือwindow
3. thisภายในฟังก์ชันภายในเป็นฟังก์ชันลูกศร กรณีที่ 1 เมื่อฟังก์ชันลูกศรอยู่ภายในฟังก์ชันลูกศร
นอกเหนือจากนี้เรายังสามารถควบคุมcontextของthisตนเองโดยใช้วิธีใดวิธี inbuilt JS และcall bind applyสำหรับบทความนี้ จะอธิบายสิ่งเหล่านี้มากเกินไป แต่เพื่อจุดประสงค์ในการสาธิต ฉันกำลังแสดงให้เห็นว่าเราจะเปลี่ยนสิ่งcontextนี้โดยใช้call:
สำหรับคำอธิบายเพิ่มเติม:
https://youtu.be/-NnxwkJ4yIg
คำถามฝึกหัด:
https://dmitripavlutin.com/javascript-this-interview-questions/
เริ่มต้นการเดินทางอันน่าตื่นเต้นของนวัตกรรมและความสำเร็จในขณะที่คุณเข้าถึงศักยภาพที่ยังไม่ได้ใช้ของแพลตฟอร์มที่ไม่ต้องเขียนโค้ดที่น่าประหลาดใจเหล่านี้ ให้ฉันแบ่งปันเรื่องราวกับคุณเกี่ยวกับ Sapna นักธุรกิจหญิงที่โดดเด่น
สัปดาห์นี้ ฉันได้รับอีเมลจากสมาชิกรายการอีเมลรายวัน พวกเขาต้องการทราบ: คุณเข้าชมแหล่งข้อมูลใดรายวัน รายสัปดาห์ และรายเดือน คำถามที่ดี! ฉันยินดีที่จะพยายามแบ่งปันข้อมูลเชิงลึกเกี่ยวกับเวิร์กโฟลว์และทรัพยากรยอดนิยมที่ฉันใช้
อาการคันในมือของฉันลามไปทั่วเมื่อฉันต่อรองราคากับร้านหนังสือในท้องถิ่นเพื่อซื้อหนังสืออีกเล่มหนึ่ง หนังสือเล่มนี้เหมือนกับหนังสืออื่นๆ ที่ฉันเพิ่งซื้อเมื่อเร็วๆ นี้ จะพบบัลลังก์บนกอง 'To Be Read' (TBR) ของฉัน; และถึงกระนั้นฉันก็ซื้อมัน
ของเก่ากลายเป็นของใหม่อีกครั้ง และของที่เคยเป็นประกายระยิบระยับกลับดูจืดชืด ฉันไม่ได้กำลังพูดถึงกางเกงยีนส์ JNCO ที่กลับมาเป็นที่นิยมในหมู่เด็กเท่ๆ ในตัวเมืองพร้อมกับแฟชั่นอื่นๆ ในช่วงปลายทศวรรษ 1990
หากเราต้องการจะเติบโตบนโลกใบนี้ต่อไป เราจะต้องสนทนาที่อันตราย คนที่ท้าทายสิ่งที่เราทำ สิ่งที่เรากำลังทำ และสิ่งที่เรากำลังจะทำต่อไป (หรือกำลังวางแผนที่จะทำ)
“หวัดดี Siri เล่น Me Dive โดย Olivia Dean” ในเดือนพฤษภาคม 2021 ฉันเริ่มฝึกงานที่ Future Academy Africa ในเมือง Akure ประเทศไนจีเรีย