【问题标题】:Use variables or "inject" jquery selectors when chaining?链接时使用变量或“注入” jquery 选择器?
【发布时间】:2009-07-10 15:37:11
【问题描述】:

这样做是否更好(关于性能,而不是可读性......):

$('a.updateCartButton').click(function() {
  $('form[name=updateCartForm]').attr('action', $(this).attr('href') + '#' + $('img[id^=iconUpdateArticle]').attr('id')).submit();
  return false;
});

或者这个:

$('a.updateCartButton').click(function() {
  var actionHref = $(this).attr('href');
  var buttonId = $('img[id^=iconUpdateArticle]').attr('id');
  $('form[name="updateCartForm"]').attr('action', actionHref + '#' +buttonId).submit();
  return false;
});

也许有人也可以向我解释如何在 jQuery Tester 中为类似的东西编写测试用例?那我以后就不用问这种问题了……;)

谢谢!

【问题讨论】:

    标签: javascript jquery performance


    【解决方案1】:

    任何一个都可以,你说的是变量赋值的性能,很可能是任何语言中最快的特性。区别:

    var a = 1;
    var b = 2;
    return a + b;
    

    对比:

    return 1 + 2;
    

    对于所有现代语言应该接近于零。

    【讨论】:

    • 感谢您的快速答复,杰克。有趣:我原以为 return 1 + 2 比 return a + b 快一些...
    • 那里有许多幼稚的 JavaScript 运行时,因此差异可能在您的示例中是可以衡量的。但是,OP 的代码足够复杂,我敢肯定命名局部变量的成本会被忽略。
    • 正是我的观点,如果您愿意,请随时将其标记为正确答案 ;-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-23
    • 2016-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多