我注意到有 _.bind
和 _.bindAll
在Underscore .我想知道你什么时候用一个而不是另一个?如果您有多个需要绑定(bind)的 this
怎么办,您会使用哪一个?
最佳答案
嗯,他们做的事情相似但完全不同。 _.bind()
函数用于将单个函数绑定(bind)到对象,而 _.bindAll()
用于绑定(bind)对象的部分或全部函数值属性对象到对象。
因此 _.bind()
在任何情况下都需要使用固定接收器调用函数时很有用,而 _.bindAll()
是当您使用更多“对象”代码时很有用。当您拥有具有函数属性的对象时就是这种情况,并且这些函数期望(要求)以对象作为接收者调用它们,以便它们可以访问其他函数。
Underscore 文档中的示例进一步解释。
请注意,现代 JavaScript 运行时环境在 Function 原型(prototype)上有一个 .bind()
方法,(在我看来)应该优先于 _.bind()
.
edit — 关于必须为多个对象创建绑定(bind)函数的问题,答案是 _.bind()
和 _. bindAll()
解决了这个问题。您只需以某种方式迭代并以某种适当的方式收集绑定(bind)函数。
关于javascript - 什么时候使用 _.bind 与 _.bindAll?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12228836/