下划线js _.each方法和_.invoke方法之间的区别

Din*_*.R. 7 underscore.js

我无法理解下划线js方法_.each_.invoke.
两者似乎都调用了每个项目传递的函数.

在这情况下,我将使用_.each_.invoke

请与一些例子分享不同之处.

Ber*_*rgi 9

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

  • each使用给定对象的每个元素调用给定函数.您还可以向其传递应用函数的上下文.它就像forEach数组上的本机一样.

    iterator.call(context, obj[i], i, obj)
    
    Run Code Online (Sandbox Code Playgroud)

    它确实返回undefined.

  • invoke通常将方法名称作为字符串获取,并为给定集合的每个元素动态查找方法.然后它将该方法应用于该元素; 而你还可以传递一些参数.

    (_.isFunction(method) ? method : obj[i][method]).apply(obj[i], args);
    
    Run Code Online (Sandbox Code Playgroud)

    它确实返回调用的结果,它基本上做了map.