- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我注意到有 _.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/
当然,我阅读了手册,但正如我在经典示例中看到的那样,如果我用绑定(bind)注释该行,它并没有真正的区别。这些方法现在默认绑定(bind)了吗? (function($){ var ListV
我在很多 Backbone.Views 中使用 _.bindAll。 _.bindAll(this, 'render', 'addOne', 'addAll', 'someFunctionA', 's
我让 View 监听集合上的“添加”事件。当处理程序触发时,上下文是 Collection,即使我使用 _.bindAll() 将其绑定(bind)到 View。这是一个错误,还是我不明白这是如何工作
我们在主干 View 中使用通用模式。我们的事件对象如下所示: var TokenInputBaseView = Backbone.View.extend({ events: { 'cli
我一直在看一些基于backbone.js 的应用程序的例子。我注意到在某些(例如下面的 this example)中,下划线函数 _.bindAll()用来: initialize: functio
有没有办法为 backbone.js 对象自动执行 _.bindAll? 我刚才和某人交谈,他们说有,但我不知道从哪里开始寻找。 例子: var TheView = Backbone.View.ext
在调用 onSubmit 时,我在尝试将 uploader 保留为 this 上下文时遇到问题。任何 JS 大师都可以帮忙吗? uploader: { init: function()
我在使用 bindAll 时遇到问题。我收到的错误是 func is undefined。对我做错了什么有什么想法吗? 我都试过了 bindAll(因上述错误而失败)和 个人 bind(不工作) wi
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 9 年前。 Improv
我正在学习backbone.js,对此感到困惑:我正在遵循教程: http://arturadib.com/hello-backbonejs/ 正如您在第一个示例 (1.js) 中看到的: (func
我正在尝试学习 Backbone js,但无法理解使用下划线库提供的 bindAll/bind 函数和 jQuery 函数提供的事件绑定(bind)之间的区别。这是 Coffeescript 中的示例
我注意到有 _.bind 和 _.bindAll 在Underscore .我想知道你什么时候用一个而不是另一个?如果您有多个需要绑定(bind)的 this 怎么办,您会使用哪一个? 最佳答案 嗯,
除了处理其上下文之外,我还试图理解主干 bindAll 函数。在这种情况下,以下实现不起作用。 创建一个 View 以从列表中插入数据。 _.bindAll(this, 'render'); 你能看出
我对绑定(bind)和 _bind.All 的目的感到困惑在 backbone.js 中。下面是创建模态视图的工作代码 #modal并呈现从后端获取的评论。 首先,在下面的代码中,我在 initial
我一直在学习一些 backbone.js 并且我已经看到很多使用 _.bindAll() 的实例。我已经通读了整个 backbone.js 和 underscore.js 文档页面,试图了解它的作用,
var myView = Backbone.V
var myView = Backbone.V
在发现一些 npm 审计漏洞后,我将 lodash 更新到版本 4.17.15。 更新后 _.bindAll(this); 没有在我的模块中运行。 我该如何解决这个问题?在我的整个代码库中是否有解决此
我最近在代码中遇到了一个有趣的错误,尽管我设法找到了修复程序,但我想知道是否有人可以解释该解决方案为何有效。这是一些代码 var Project = Backbone.Model.extend({
在 Shiny 站点中,他们说在对 DOM 进行更改之前,也就是说,添加或删除输入和输出,您需要通过调用告诉 Shiny unbindAll 和 bindAll: function modifyDom
我是一名优秀的程序员,十分优秀!