标签: underscore.js
我无法理解underscore js方法_.each和_.invoke之间的区别。 两者似乎都调用了每个项目上传递的函数。
_.each
_.invoke
我应该在哪种情况下使用_.each和_.invoke?
请与一些例子分享不同之处。
答案 0 :(得分:9)
each使用给定对象的每个元素调用给定函数。您还可以向其传递应用函数的上下文。它的作用类似于数组上的本地forEach。
each
forEach
iterator.call(context, obj[i], i, obj)
它确实返回undefined。
invoke通常将方法名称作为字符串获取,并为给定集合的每个元素动态查找方法。然后它将该方法应用于该元素;而你还可以传递一些参数。
invoke
(_.isFunction(method) ? method : obj[i][method]).apply(obj[i], args);
它确实返回调用的结果,它基本上是map。
map