【发布时间】:2012-08-03 04:03:49
【问题描述】:
只是一个小的理论性能问题:
如果我有类似的东西:
$(".somediv").each(function() {
// perform some heavy stuff here
});
如果我将匿名函数的代码重构为像这样的命名函数,代码的执行会不会更快:
f = function() {
// perform some heavy stuff here
};
$(".somediv").each(f);
不知何故,我有一个不合理的怀疑告诉我,也许匿名函数每次在每个循环中都会重新创建?
【问题讨论】:
-
非理性怀疑是非理性的
-
这就是 jsperf.com 这样的工具旨在解决的问题。此外,答案可能会因浏览器而异!
-
尝试删除循环中不需要的任何东西,以便“在此处执行一些繁重的工作”,例如。声明的变量应该在循环之外。您提到的两个选项之间没有太大区别。
标签: javascript jquery