Tôi đã học một số backbone.js và tôi đã thấy rất nhiều trường hợp _.bindAll()
được sử dụng. Tôi đã đọc qua toàn bộ trang tài liệu backbone.js và underscore.js để cố gắng hiểu những gì nó hoạt động, nhưng tôi vẫn rất mơ hồ về những gì nó làm. Đây là lời giải thích của gạch dưới:
_.bindAll(object, [*methodNames])
Liên kết một số phương thức trên đối tượng, được chỉ định bởi methodNames, được chạy trong ngữ cảnh của đối tượng đó bất cứ khi nào chúng được gọi. Rất tiện dụng cho các hàm ràng buộc sẽ được sử dụng làm trình xử lý sự kiện, nếu không sẽ được gọi với một hàm khá vô dụng. Nếu không có methodName nào được cung cấp, tất cả các thuộc tính hàm của đối tượng sẽ bị ràng buộc với nó.
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...
Nếu bạn có thể giúp đỡ ở đây bằng cách đưa ra một ví dụ khác có lẽ hoặc một số giải thích bằng lời nói, bất cứ điều gì sẽ được đánh giá cao. Tôi đã cố gắng tìm kiếm thêm các hướng dẫn hoặc ví dụ, nhưng không có gì phục vụ những gì tôi cần. Hầu hết mọi người dường như chỉ biết những gì nó tự động làm ...