不,他们做不同的事情。看看他们的代码!
each
使用给定对象的每个元素调用给定函数。您还可以向它传递应用函数的上下文。它就像forEach
数组上的本机一样。
iterator.call(context, obj[i], i, obj)
它确实返回未定义。
invoke
通常以字符串形式获取方法名称,并为给定集合的每个元素动态查找方法。然后它将该方法应用于该元素;您还可以向它传递一些参数。
(_.isFunction(method) ? method : obj[i][method]).apply(obj[i], args);
它确实返回调用的结果,它基本上是map
。
于 2012-11-02T11:44:03.443 回答