在Underscore方法或Backbone方法之间哪个更快?

时间:2017-03-13 13:01:22

标签: javascript performance backbone.js underscore.js

我使用下划线方法和骨干方法。我想知道哪些表现更好更快?我正在尝试使用大量数据进行收集,并且收集的数量也更多。

示例:

_.filter(collection, predicate);
collection.filter(predicate);

1 个答案:

答案 0 :(得分:3)

这是how backbone adds _ methods在构造函数中构建的:

var addUnderscoreMethods = function(Class, methods, attribute) {
  _.each(methods, function(length, method) {
     if (_[method]) Class.prototype[method] = addMethod(length, method, attribute);
  });
};

addMethod返回如下函数:

return function(value) {
  return _[method](this[attribute], value);
};

所以简单地说它只是调用相同方法的不同方式。

从纯粹的性能角度来看,通过避免包装函数调用,直接调用_方法可能会更快一些。

从可读性和维护的角度来看,收集方法会更好。在现代浏览器中,合理大小的集合中的性能差异是微不足道的。这就是为什么它们首先出现的原因。