我一直在學習一些backbone.js,並且我已經看到很多使用_.bindAll()
的實例。我已經通讀了整個backbone.js和underscore.js文檔頁面,試圖瞭解它的功能,但我仍然對它的功能非常模糊。這裏有下劃線的解釋:需要解釋來自Underscore.js的_.bindAll()函數
_.bindAll(object, [*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...
如果您可以通過給另一個例子或許或者一些口頭解釋幫助在這裏,任何將不勝感激。我試圖尋找更多的教程或例子,但沒有出現,我滿足了需要。大多數人似乎只知道它會自動執行...
很好的解釋:http://blog.bigbinary.com/2011/08/18/understanding- bind-and-bindall-in-backbone.html –