我注意到_.bind中有_.bindAllUnderscore。我想知道您什么时候使用一个?如果您需要绑定多个this,该怎么办?

最佳答案

好吧,他们做了类似但完全不同的事情。 _.bind()函数用于将单个函数绑定到对象,而_.bindAll()用于将对象的某些或所有函数值属性绑定到对象。

因此,在遇到任何需要使用固定接收器调用函数的情况时,_.bind()很有用,而在使用更多“对象”代码时,_.bindAll()很有用。当您的对象具有作为函数的属性时,就是这种情况,并且这些函数希望(要求)以对象作为接收者的方式调用它们,以便它们可以访问其他函数。

Underscore文档中的示例进一步说明。

请注意,现代JavaScript运行时环境在Function原型上具有.bind()方法,(对我来说)该方法应优于_.bind()

编辑-关于必须为多个对象创建绑定函数的问题,答案是_.bind()_.bindAll()都不能解决这个问题。您只需以某种方式进行迭代并以某种适当的方式收集绑定的函数。

09-16 02:27