javascript - 什么时候使用 _.bind 与 _.bindAll?

标签 javascript backbone.js underscore.js

我注意到有 _.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/

相关文章:

jquery - 包含 Underscore.js 与 jQuery 无冲突

javascript - Underscore/jQuery 模板注释问题

node.js - 在node/expressjs中过滤json对象

javascript - 从 JSX 函数返回数组并在其他地方解构它

javascript - 插入后如何通过ID获取文档?

backbone.js - View 中的 View ?如何使用 Backbone.js 生成项目列表?

backbone.js - Backbone View 的父元素?

javascript - 在同一新选项卡中打开外部链接

javascript - 未定义 JSONP 跨域

javascript - 主干 View 不应在不同实例中具有相同的数据,但确实如此