ฉันได้เรียนรู้ backbone.js มาบ้างแล้วและฉันได้เห็นอินสแตนซ์มากมายที่_.bindAll()
ถูกใช้ ฉันได้อ่านหน้าเอกสาร backbone.js และ underscore.js ทั้งหมดเพื่อพยายามทำความเข้าใจว่ามันทำอะไรได้บ้าง แต่ฉันก็ยังคลุมเครือเกี่ยวกับสิ่งที่มันทำ นี่คือคำอธิบายขีดล่าง:
_.bindAll(object, [*methodNames])
ผูกเมธอดจำนวนมากบนอ็อบเจ็กต์ที่ระบุโดย methodNames เพื่อให้รันในบริบทของอ็อบเจ็กต์นั้นเมื่อใดก็ตามที่มีการเรียกใช้ มีประโยชน์มากสำหรับฟังก์ชันการเชื่อมโยงที่จะใช้เป็นตัวจัดการเหตุการณ์ซึ่งจะถูกเรียกใช้ด้วยสิ่งนี้ที่ไร้ประโยชน์ หากไม่มีการระบุ methodNames คุณสมบัติฟังก์ชันทั้งหมดของอ็อบเจ็กต์จะถูกผูกไว้กับอ็อบเจ็กต์
var buttonView = { label : 'underscore', onClick : function(){ alert('clicked: ' + this.label); }, onHover : function(){ console.log('hovering: ' + this.label); } }; _.bindAll(buttonView); jQuery('#underscore_button').bind('click', buttonView.onClick); => When the button is clicked, this.label will have the correct value...
หากคุณสามารถช่วยได้โดยการให้ตัวอย่างอื่นหรือคำอธิบายด้วยวาจาอะไรก็น่าชื่นชม ฉันพยายามค้นหาแบบฝึกหัดหรือตัวอย่างเพิ่มเติม แต่ไม่มีอะไรที่ตอบสนองสิ่งที่ฉันต้องการได้ คนส่วนใหญ่ดูเหมือนจะรู้ว่ามันทำอะไรโดยอัตโนมัติ ...