underscore.js - 下划线js_.each方法和_.invoke方法的区别

标签 underscore.js

我无法理解 underscore js 之间的区别方法 _.each _.invoke .
两者似乎都调用了传递给每个项目的函数。

我应该在什么场景下使用_.each_.invoke ?

请用一些例子分享不同之处。

最佳答案

不,他们做不同的事情。看看他们的代码!

  • each 使用给定对象的每个元素调用给定函数。您还可以将应用函数的上下文传递给它。它的行为就像本地 forEach在阵列上。
    iterator.call(context, obj[i], i, obj)
    

    它确实返回未定义。
  • invoke 通常以字符串形式获取方法名称,并为给定集合的每个元素动态查找方法。然后在该元素上应用该方法;您还可以向它传递一些参数。
    (_.isFunction(method) ? method : obj[i][method]).apply(obj[i], args);
    

    它确实返回调用的结果,它基本上是 map .
  • 关于underscore.js - 下划线js_.each方法和_.invoke方法的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13193959/

    相关文章:

    javascript - 使用下划线替换另一个对象的对象键

    javascript - 使用 underscore.js 从嵌套对象(父子)中获取路径字段值

    javascript - 将字符串转换为 _.each 中的对象

    javascript - 如何按键组合数组中的值?

    javascript - 将 Backbone.js 集合呈现为选择列表

    使用 _.extend 进行继承的 Javascript 设计方法

    javascript - 如何将数组转换为下划线中的对象?

    javascript - jQuery-ui 自动完成下拉列表中的两个字段

    javascript - 迭代数组时删除对象

    javascript - 使用 underscoreand 和 lodash 库按 ID 从数组中获取项目