在underscore
文档中,bindAll方法执行以下操作:
_.bindAll(object, *methodNames) // syntax
var buttonView = {
label : 'underscore',
onClick: function(){ alert('clicked: ' + this.label); },
onHover: function(){ console.log('hovering: ' + this.label); }
};
_.bindAll(buttonView, 'onClick', 'onHover');
// When the button is clicked, this.label will have the correct value.
jQuery('#underscore_button').bind('click', buttonView.onClick);
现在,bindAll()方法将对象的多个方法绑定,由methodNames指定,只要调用它们,就可以在该对象的上下文中运行。现在真的有必要在上面的例子中调用bindAll()吗?
我认为调用buttonView.onClick
会自动将this
关键字绑定到buttonView
不是吗?