你什么时候用_.bind和_.bindAll
When do you use _.bind vs _.bindAll?
我注意到Undercore中有_.bind
和_.bindAll
。我想知道你什么时候用一个而不是另一个?如果您有多个this
需要绑定,您会使用哪一个呢?
他们做着相似但截然不同的事情。_.bind()
函数用于将单个函数绑定到对象,而_.bindAll()
用于将对象的部分或全部函数值属性绑定到对象。
因此,当您遇到任何需要使用固定接收器调用函数的情况时,_.bind()
都很有用,而当您使用更多"对象"代码时,_.bindAll()
也很有用。当您有具有函数属性的对象时,就会出现这种情况,并且这些函数期望(要求)将对象作为接收器来调用它们,以便它们可以访问其他函数。
Undercore文档中的示例进一步解释。
请注意,现代JavaScript运行时环境在Function原型上有一个.bind()
方法,(在我看来)应该比_.bind()
更可取。
编辑—关于必须为多个对象创建绑定函数的问题,答案是_.bind()
和_.bindAll()
都没有解决这个问题。您只需要以某种方式进行迭代,并以某种适当的方式收集绑定函数。
相关文章:
- 直接在函数声明上使用function.prototype.bind
- 显示&作为&在jsp中使用angularjs而不使用ng-bind-html
- 如何使jQuery的“bind”或“on”事件处理程序幂等
- Replacing jQuery.bind with jQuery.on
- 无法使用.bind更改分配给此对象的值
- 你什么时候用_.bind和_.bindAll
- jQuery change()和bind(“change”)不起作用
- Angular 1.4解析ng-bind-html的内容
- Javascript:函数bind.click&对于每个复选框
- requestAnimationFrame的Function.prototype.bind导致属性不可读
- jQuery.bind或.on习惯于绑定到新记录
- 如何创建自定义属性以添加if.bind
- Vue.js-插值错误-如何将样式修改为v-bind:style
- clearInterval.bind()不能作为传递到addEventListener的参数
- 蓝鸟承诺的困难.bind()
- JSHint”;可能存在严重违规行为"当使用“bind”时
- 通过fn.apply或fn.bind将函数传递给setTimeout
- .bind()无法设置cookie
- 如何防止bind在使用async.series时更改node.js中的原始对象
- Ember.run.bind 不起作用