javascript - 使用变量而不是重新声明 jquery 对象在速度方面是否更好

标签 javascript jquery

在工作时,我经常使用相同的节点作为 jQuery 对象的选择器,例如 $('.often')正如我所想,jQuery 每次都会为其创建一个新对象,但我也可以将已经创建的对象分配给变量: often=$('.often')除了可能更好的可读性之外,使用相同的对象作为变量是否会提高脚本的性能?

最佳答案

在任何语言中,两次调用具有相同参数的函数都会产生代码味道。

函数的实现通常是函数调用者不关心的细节,但调用者通常可以安全地假设调用函数两次比将其返回值分配给局部变量更昂贵。

除非函数的行为因状态而异(例如,在多线程应用程序中),否则只需调用一次即可。

这可能更多的是风格问题而不是技术问题,但如果我看到这样的东西:

if (get_my_value("param") == 1) {
    return "Got 1.";
}
if (get_my_value("param") == 2) {
    return "Got 2.";
}

我会将其重写为:

var my_value = get_my_value("param");
if (my_value == 1) {
    return "Got 1.";
}
if (my_value == 2) {
    return "Got 2.";
}

我重写它的原因是:

  1. 如果 get_my_value 很昂贵,我就提高了性能。
  2. 通过减少代码重复,我提高了可维护性。
  3. 通过减少代码重复,我提高了可读性。

关于javascript - 使用变量而不是重新声明 jquery 对象在速度方面是否更好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20525590/

相关文章:

javascript - 管理不同构建环境(如 QA、UAT、生产环境)的 JavaScript 配置文件

javascript - 我的 ajax 在 live() 中不起作用

javascript - 将外部 HTML 和 JS 注入(inject)页面

javascript - 如何在没有 cookie 的情况下在我的网站上使用 MathJax

javascript - Highcharts - 在缩放事件(选择)上显示标记并在重置缩放时隐藏。是否可以?

javascript - 将 Iframe 中的 Fancybox 居中到父中心

asp.net - Jquery 列表框/文本框过滤器

javascript - HighCharts - 多级饼图向下钻取(3 到 4 级)

javascript - Jquery Ajax 服务器轮询;根据早期的 ajax 响应轮询服务器

javascript - jQuery datePicker 不弹出