thisเป็นองค์ประกอบ$(this)คือวัตถุ jQuery ที่สร้างขึ้นด้วยองค์ประกอบนั้น
$(".class").each(function(){
//the iterations current html element
//the classic JavaScript API is exposed here (such as .innerHTML and .appendChild)
var HTMLElement = this;
//the current HTML element is passed to the jQuery constructor
//the jQuery API is exposed here (such as .html() and .append())
var jQueryObject = $(this);
});
มองลึก
thisMDNมีอยู่ในบริบทการดำเนินการ
ขอบเขตหมายถึงปัจจุบันบริบทการดำเนิน ECMA เพื่อที่จะเข้าใจthisมันเป็นสิ่งสำคัญที่จะเข้าใจวิธีการดำเนินการตามบริบทการทำงานใน JavaScript
บริบทการดำเนินการผูกนี้
เมื่อตัวควบคุมเข้าสู่บริบทการเรียกใช้งาน (โค้ดกำลังถูกดำเนินการในขอบเขตนั้น) สภาพแวดล้อมสำหรับตัวแปรจะถูกตั้งค่า (สภาวะแวดล้อมแบบย่อและแปรปรวน) โดยพื้นฐานแล้วสิ่งนี้จะเป็นการตั้งค่าพื้นที่สำหรับตัวแปรเพื่อป้อนว่าตัวแปรใดที่สามารถเข้าถึงได้ เก็บไว้) และผูกพันของthisเกิดขึ้น
jQuery ผูกสิ่งนี้
บริบทการดำเนินการในรูปแบบสแต็กตรรกะ ผลลัพธ์คือบริบทที่ลึกกว่าในสแต็กมีการเข้าถึงตัวแปรก่อนหน้า แต่การโยงอาจเปลี่ยนแปลง เวลา jQuery เรียกฟังก์ชันโทรกลับทุกคนก็เปลี่ยนแปลงนี้มีผลผูกพันโดยใช้MDNapply
callback.apply( obj[ i ] )//where obj[i] is the current element
ผลลัพธ์ของการโทรapplyคือภายในฟังก์ชันการเรียกกลับ jQuery thisหมายถึงองค์ประกอบปัจจุบันที่ใช้โดยฟังก์ชันการเรียกกลับ
ยกตัวอย่างเช่นในฟังก์ชั่นการโทรกลับที่ใช้กันทั่วไปช่วยให้.each .each(function(index,element){/*scope*/})ในขอบเขตนั้นthis == elementเป็นจริง
การเรียกกลับ jQuery ใช้ฟังก์ชั่น Apply เพื่อผูกฟังก์ชั่นที่ถูกเรียกด้วยองค์ประกอบปัจจุบัน องค์ประกอบนี้มาจากอาร์เรย์องค์ประกอบของวัตถุ jQuery แต่ละวัตถุ jQuery สร้างขึ้นมีอาร์เรย์ขององค์ประกอบที่ตรงกับตัวเลือกjQuery APIที่ใช้ในการยกตัวอย่างวัตถุ jQuery
$(selector)เรียกฟังก์ชัน jQuery (จำได้ว่า$มีการอ้างอิงถึงjQueryรหัส: window.jQuery = window.$ = jQuery;) ภายในฟังก์ชัน jQuery จะทำให้วัตถุเป็นฟังก์ชันได้ทันที ดังนั้นในขณะที่มันอาจจะไม่ชัดเจนทันทีที่ใช้ภายในการใช้งาน$() new jQuery()ส่วนหนึ่งของการสร้างวัตถุ jQuery นี้คือการค้นหาการแข่งขันทั้งหมดของตัวเลือก ตัวสร้างยังจะยอมรับสตริง HTML และองค์ประกอบ เมื่อคุณผ่านthisไปยังตัวสร้าง jQuery คุณจะผ่านองค์ประกอบปัจจุบันสำหรับวัตถุ jQuery จะถูกสร้างขึ้นด้วย จากนั้นวัตถุ jQuery จะมีโครงสร้างเหมือนอาร์เรย์ขององค์ประกอบ DOM ที่ตรงกับตัวเลือก (หรือเพียงองค์ประกอบเดียวในกรณีของthis)
เมื่อสร้างวัตถุ jQuery แล้ว jQuery API จะถูกเปิดเผย เมื่อมีการเรียกใช้ฟังก์ชัน jQuery api ฟังก์ชันจะทำซ้ำภายในโครงสร้างแบบอาเรย์นี้ สำหรับแต่ละรายการในอาเรย์มันจะเรียกฟังก์ชั่นการโทรกลับสำหรับ API, ผูกพันการโทรกลับของthisองค์ประกอบปัจจุบัน การเรียกนี้สามารถเห็นได้ในข้อมูลโค้ดด้านบนซึ่งobjมีโครงสร้างคล้ายอาร์เรย์และiเป็นตัววนซ้ำที่ใช้สำหรับตำแหน่งในอาร์เรย์ขององค์ประกอบปัจจุบัน