วิธีที่ง่ายที่สุดในการใช้ bind () เพื่อผูก () คือการสร้างฟังก์ชั่นเพื่อให้ฟังก์ชั่นมีค่าเท่ากันไม่ว่าจะเรียกว่า ซึ่งแตกต่างจากการโทรและการใช้ซึ่งเพียงกำหนดค่าของสิ่งนี้และส่งผ่านอาร์กิวเมนต์มันจะผูกอาร์กิวเมนต์จริงทั้งหมดที่ส่งผ่านลงในเมธอด bind () (พารามิเตอร์หลังจากพารามิเตอร์แรก) ด้วยสิ่งนี้
สำหรับตัวอย่างของคุณสมบัตินี้โปรดดูข้อความต้นฉบับของ "JS Adventive Guide"::
var sum = function (x, y) {return x + y}; var succt = sum.bind (null, 1); // ปล่อยให้จุดนี้เป็นโมฆะและพารามิเตอร์จริงที่ตามมาจะถูกส่งผ่านไปยังฟังก์ชันที่ถูกผูกไว้ SUMSUCC (2); // => 3: คุณจะเห็นว่า 1 ถูกผูกไว้กับ x ในฟังก์ชันผลรวมประการที่สองความยาวของฟังก์ชั่นที่ส่งคืนโดยวิธีการ bind () เท่ากับค่าพารามิเตอร์รูปร่างของฟังก์ชันดั้งเดิมลบด้วยจำนวนพารามิเตอร์จริงที่ส่งผ่านลงในเมธอด BIND () (พารามิเตอร์ทั้งหมดหลังจากพารามิเตอร์แรก) เนื่องจากพารามิเตอร์จริงที่ส่งเข้าสู่การผูกจะถูกผูกไว้กับพารามิเตอร์ที่เป็นทางการของฟังก์ชันดั้งเดิม
ฟังก์ชั่น func (a, b, c, d) {... } // ความยาวของ func คือ 4var หลังจาก = func.bind (null, 1,2); // พารามิเตอร์จริงสองตัว (1,2) ถูกป้อนที่นี่เพื่อผูกกับฟังก์ชัน A ของ func, bconsole.log (หลังความยาว); // ความยาวของหลังคือ 2ประการที่สามเมื่อฟังก์ชั่นที่ส่งคืนโดย bind () ถูกใช้เป็นตัวสร้างสิ่งนี้จะผ่านเข้าสู่ bind () จะถูกละเว้นและบัญชีจริงทั้งหมดจะถูกส่งผ่านไปยังฟังก์ชันดั้งเดิม นี่เป็นนามธรรมมาก ตัวอย่างเช่น:
ฟังก์ชั่นต้นฉบับ (x) {this.a = 1; this.b = function () {return this.a + x}} var obj = {a = 10} var newObj = new (original.bind (obj, 2)); // พารามิเตอร์จริง 2console.log (newobj.a); // เอาท์พุท 1 แสดงว่า OBJ (ค่านี้) ถูกละเว้นเมื่อใช้ฟังก์ชันที่ส่งคืนเป็นคอนโซลคอนโซล. log (newobj.b ()); // output 3 แสดงว่าพารามิเตอร์ที่ผ่าน 2 ถูกส่งผ่านไปยังฟังก์ชันดั้งเดิมต้นฉบับข้างต้นเป็นลักษณะของวิธีการผูกใน ES5 และเทคโนโลยีนี้เรียกว่า การทำงานของการทำงาน เทคนิคนี้จะเปลี่ยนฟังก์ชั่นที่มีพารามิเตอร์หลายตัวเป็นฟังก์ชั่นที่มีพารามิเตอร์เดียวเท่านั้น วิธีการผูกคือการปฏิบัติของเทคโนโลยีนี้ใน JS
การอภิปรายสั้น ๆ เกี่ยวกับวิธีการผูกและฟังก์ชั่นการแกว่งใน JS เป็นเนื้อหาทั้งหมดที่ฉันแบ่งปันกับคุณ ฉันหวังว่ามันจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น