ใน JS การชี้นี้จะต้องเป็นปัญหาที่ยากสำหรับสามเณร แต่ถ้าคุณเข้าใจจริงๆจะไม่มีปัญหา มาพูดถึงเรื่องนี้ด้านล่าง
ใน JS ค่าของสิ่งนี้ขึ้นอยู่กับรูปแบบของการโทร (วัตถุการโทร) และมีรูปแบบการโทร 4 ประเภทใน JS:
1. โหมดการโทรฟังก์ชัน
เมื่อฟังก์ชั่นไม่ใช่คุณสมบัติของวัตถุมันจะถูกเรียกว่าเป็นฟังก์ชั่นสองครั้ง ในเวลานี้ฟังก์ชั่นนี้ชี้ไปที่วัตถุทั่วโลก (ในกรณีของลอการิทึมขนาดใหญ่มันเป็นหน้าต่าง)
window.value = 1; ฟังก์ชั่น getValue () {console.log (this.value);} getValue (); // output 1, จุดนี้ไปยังหน้าต่าง2. โหมดการเรียกใช้วิธีการ
เมื่อฟังก์ชั่นเป็นคุณสมบัติของวัตถุเราเรียกมันว่าวิธีการของวัตถุ เมื่อมีการเรียกวิธีการสิ่งนี้ชี้ไปที่วัตถุ
var obj = {value: 2, getValue: function () {console.log (this.value); // output 2, ชี้ไปที่ obj}}}- - - ในโหมดนี้การเชื่อมโยงของสิ่งนี้กับวัตถุจะเกิดขึ้นเมื่อมีการเรียกวิธีการ
3. โหมดการโทรคอนสตรัคเตอร์
ฟังก์ชั่นที่เรียกว่าด้วยใหม่เรียกว่าฟังก์ชันตัวสร้าง ในเวลานี้ชี้ไปที่วัตถุที่มาจากอินสแตนซ์ฟังก์ชั่นตัวสร้าง
ฟังก์ชั่นหลัก (val) {this.value = val;} main.prototype.getValue = function () {console.log (this.value);} var fun = new main (3); fun.getValue () fun.value; // output 34. ใช้โหมดการโทร/การโทรและผูก
วิธีการสมัคร, การโทร, การผูกช่วยให้เราสามารถตั้งค่าสิ่งนี้ในจุดผู้โทรไปที่
function showValue () {console.log (this.value);} var obj = {value: 4} showvalue.call (obj) // เอาท์พุท 4 ซึ่งชี้ไปที่วัตถุ OBJมีการเพิ่มวิธีการผูกใหม่ใน ECMA5 คุณสามารถใช้ Google การใช้งานที่เฉพาะเจาะจง นี่คือการสาธิตการใช้งานของการผูกมัดนี้
function showValue () {console.log (this.value);} var obj = {value: 4} var showvalue2 = showvalue.bind (obj); showvalue2 () // output 4 ซึ่งชี้ไปที่วัตถุ OBJมีการใช้งานจำนวนมากคุณสามารถตรวจสอบได้ด้วยตัวเอง
ความคิดโบราณข้างต้นพูดถึงเรื่องนี้ใน JS คือเนื้อหาทั้งหมดที่ฉันแบ่งปันกับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น