⊗jsPmDmThsA 357 of 505 menu

ข้อได้เปรียบของ this ใน JavaScript

จากที่กล่าวมาก่อนหน้านี้ ข้อได้เปรียบพิเศษของ this ยังไม่ชัดเจน เนื่องจากภายในฟังก์ชันตัวจัดการ องค์ประกอบของเราจะสามารถเข้าถึงได้อยู่แล้ว – เพราะตัวแปร elem จะเป็นตัวแปรส่วนกลางสำหรับฟังก์ชัน func ของเรา:

let elem = document.querySelector('#elem'); elem.addEventListener('click', func); function func() { // ตัวแปร elem ที่มีองค์ประกอบของเราสามารถเข้าถึงได้ที่นี่ }

และไม่ยากที่จะคิดว่าเนื้อหาของ this และเนื้อหาของตัวแปร elem ในกรณีของเรา นั้นเท่ากัน:

let elem = document.querySelector('#elem'); elem.addEventListener('click', func); function func() { console.log(elem === this); // จะแสดง true }

แล้วข้อได้เปรียบพิเศษของ this อยู่ที่ไหน? มันจะปรากฏชัดเมื่อเรามีหลายองค์ประกอบ และแต่ละองค์ประกอบถูกผูกกับฟังก์ชันเดียวกัน

มาดูตัวอย่าง สมมติเรามีปุ่ม 3 ปุ่ม:

<input id="button1" type="submit" value="text1"> <input id="button2" type="submit" value="text2"> <input id="button3" type="submit" value="text3">

รับลิงก์ไปยังพวกมันไว้ในตัวแปร:

let button1 = document.querySelector('#button1'); let button2 = document.querySelector('#button2'); let button3 = document.querySelector('#button3');

ผูกฟังก์ชันเดียวกันนี้กับปุ่มเหล่านี้:

button1.addEventListener('click', func); button2.addEventListener('click', func); button3.addEventListener('click', func);

และภายในฟังก์ชัน เราจะแสดง this.value:

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

ผลที่ได้คือเรามีปุ่มสามปุ่ม การกด แต่ละปุ่มจะทำให้เรียกใช้ ฟังก์ชัน func ในขณะเดียวกัน ทุกครั้งที่ คลิก this จะเก็บลิงก์ ไปยังปุ่มที่เกิดเหตุการณ์นั้น

นั่นคือ ทุกครั้งที่กดจะแสดงในคอนโซล value ของปุ่มที่เกิดการกด แต่จะทำโดยฟังก์ชันเดียวกัน func! นี่คือข้อได้เปรียบ ของการใช้ this

มี 5 ย่อหน้าที่มีข้อความบางอย่าง เมื่อคลิกที่ย่อหน้าใดๆ ให้เขียนเครื่องหมายอัศเจรีย์ ต่อท้ายข้อความของย่อหน้านั้น

มี 3 ช่องอินพุต ซึ่งมี ตัวเลขบางอย่างเขียนไว้ เมื่อเสียโฟกัสใน ช่องอินพุตใดๆ ให้ยกกำลังสองจำนวนที่อยู่ในช่องนั้น

ไทย
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
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ