นี่คือคำหลักใน JavaScript ค่าของสิ่งนี้จะเปลี่ยนไปขึ้นอยู่กับการใช้ฟังก์ชัน แต่มีหลักการอยู่เสมอนั่นคือสิ่งนี้หมายถึงวัตถุที่เรียกฟังก์ชั่น
ในภาษา OO แบบดั้งเดิมตัวชี้นี้จะถูกประกาศในชั้นเรียนและแสดงถึงวัตถุเอง ใน JavaScript นี่แสดงถึงบริบทปัจจุบันนั่นคือการอ้างอิงของผู้โทร
******* สิ่งนี้ชี้ไปที่เจ้าของ (ฟังก์ชั่นวัตถุ) เสมอ
วัตถุนี้และทั่วโลก:
var a = 1; function foo () {var b = 2; console.log (this.a+b); // 3} foo (); // เจ้าของฟังก์ชั่น FOO คือหน้าต่างและนี่หมายถึงวัตถุหน้าต่างในฟังก์ชั่นทั่วโลก (************ เว้นแต่จะใช้วิธีการใหม่การโทรใช้เพื่อเปลี่ยนความสัมพันธ์อ้างอิงของสิ่งนี้)สิ่งนี้และวัตถุ:
var person = {ชื่อ: 'Theo Wong', เพศ: 'Male', getName: function () {console.log (this.name); // เจ้าของฟังก์ชั่น getName เป็นวัตถุบุคคล}}; person.getName ();ในฟังก์ชั่นซ้อนกัน
var myObject = {func1: function () {console.log (นี่); // myObject var func2 = function () {console.log (นี่); // window var func3 = function () {console.log (นี่); //หน้าต่าง }(); - - myobject.func1 (); // ในฟังก์ชั่นซ้อนกันเนื่องจากบริบทการดำเนินการของฟังก์ชั่นซ้อนกันคือหน้าต่างสิ่งนี้หมายถึงวัตถุหน้าต่าง อันที่จริงนี่เป็นข้อผิดพลาดใน ECMA-262-3 ซึ่งได้รับการแก้ไขใน ECMA-262-5 ล่าสุดในการประมวลผลเหตุการณ์:
var showValue = function () {Alert (this.value); -1. <อินพุต id = "ทดสอบ" type = "text" />
เหตุการณ์ที่มีผลผูกพันผ่าน dom.onclick, document.getElementById ('ทดสอบ'). onClick = showValue;
ในเวลานี้ ShowValue ถูกเรียกว่าเป็นวิธี onclick ของ DOM ดังนั้นสิ่งนี้ควรอ้างถึงวัตถุ DOM ไม่ใช่วัตถุหน้าต่างอีกต่อไป
2. เขียนในแท็ก html, <อินพุต id = "ทดสอบ" type = "text" onclick = "showvalue ();" -
เมื่อคลิกที่ DOM เราไม่สามารถแก้ไขสิ่งนี้ได้ ในเวลานี้หมายถึงวัตถุหน้าต่าง เนื่องจากไม่มีค่าที่กำหนดไว้ในวัตถุหน้าต่างจึงไม่สามารถรับค่านี้ได้
*** ในเวลานี้มันไม่ได้กำหนดฟังก์ชัน showvalue ให้กับ onclick ของวัตถุ DOM แต่เป็นการอ้างอิง ในเวลานี้เจ้าของฟังก์ชั่น () เป็นหน้าต่าง
document.getElementById ('ทดสอบ'). onClick = function () {showValue ();}การฟังเหตุการณ์ที่มีผลผูกพันผ่าน AddEventListener/AttachEvent
<input type = "text" id = "test" /> <script type = "text /javascript"> var dom = document.getElementById ('ทดสอบ'); id = 'หน้าต่าง'; การทดสอบฟังก์ชั่น () {แจ้งเตือน (this.id); } dom.addeventListener? dom.addeventListener ('คลิก', ทดสอบ, เท็จ): dom.attachevent ('onclick', ทดสอบ); // AddEventListener Test // หน้าต่างแนบ </script> // วิธีการตรวจสอบเหตุการณ์ที่มีผลผูกพันนี่คือสิ่งที่แนบมานี้เป็นวัตถุหน้าต่างและ AddEventListener เป็นวัตถุ DOMสิ่งนี้และสร้าง:
ฟังก์ชั่น obj (ชื่อ, อายุ) {this.name = name; this.age = อายุ; this.fun = function () {Alert (this.name); - } var obj = new obj ('xht', 18); // สิ่งนี้หมายถึงวัตถุใหม่นี้การเปลี่ยนแปลงความสัมพันธ์อ้างอิงของ obj.fun (); // xhtสิ่งนี้และโทร
// กำหนดบุคคลที่มีชื่อ Jack var Jack = {ชื่อ: "Jack", อายุ: 26} // กำหนดบุคคลอื่นที่มีชื่อ Abruzzi var Abruzzi = {ชื่อ: "Abruzzi", อายุ: 26} // กำหนดฟังก์ชั่นฟังก์ชั่นฟังก์ชั่น } // ตั้งค่าบริบทของชื่อ AlertName เป็น Jack และในเวลานี้คือ Jack Alert (AlertName.Call (Jack)); // ตั้งค่าบริบทของชื่อ AlertName เป็น Abruzzi และในเวลานี้คือ Abruzzi Alert (AlertName.Call (Abruzzi));ใบเสนอราคาเป็นหัวข้อที่ค่อนข้างน่าสนใจ ซึ่งแตกต่างจากภาษาอื่น ๆ การอ้างอิงใน JavaScript มักจะชี้ไปที่วัตถุสุดท้ายไม่ใช่การอ้างอิงเอง
var obj = {}; // วัตถุเปล่า var ref = obj; // อ้างอิง obj.name = "Objecta"; การแจ้งเตือน (ชื่ออ้างอิง); // ref จากนั้นเพิ่มแอตทริบิวต์ชื่อ obj = ["หนึ่ง", "สอง", "สาม"]; // OBJ ชี้ไปที่วัตถุอื่น (อาร์เรย์วัตถุ) แจ้งเตือน (ref.Name); // Ref ยังชี้ไปที่การแจ้งเตือนวัตถุดั้งเดิม (obj.length); // 3 การแจ้งเตือน (ref.length);OBJ เป็นเพียงการอ้างอิงถึงวัตถุที่ไม่ระบุชื่อดังนั้น REF ไม่ได้ชี้ไปที่มัน
การอ้างอิงสามารถชี้ไปที่วัตถุเฉพาะเท่านั้น เมื่อวัตถุเฉพาะเปลี่ยนแปลงการอ้างอิงหรือการอ้างอิงไปยังวัตถุต้นฉบับมากกว่าวัตถุที่เปลี่ยนแปลง
ข้างต้นคือข้อมูลเกี่ยวกับตัวชี้และการอ้างอิงนี้ใน JavaScript แนะนำให้คุณทราบโดยบรรณาธิการ ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับคุณทันเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!