我使用下划线方法和骨干方法。我想知道哪些表现更好更快?我正在尝试使用大量数据进行收集,并且收集的数量也更多。
示例:
_.filter(collection, predicate);
collection.filter(predicate);
答案 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);
};
所以简单地说它只是调用相同方法的不同方式。
从纯粹的性能角度来看,通过避免包装函数调用,直接调用_
方法可能会更快一些。
从可读性和维护的角度来看,收集方法会更好。在现代浏览器中,合理大小的集合中的性能差异是微不足道的。这就是为什么它们首先出现的原因。