数组表示法或.method() - 哪个更快?

时间:2012-02-23 14:39:25

标签: javascript jquery performance

我在JavaScript中遇到了数组表示法,我想知道哪种方式写得更快或更好。我认为第二个版本难以阅读,但它有什么好处吗?或者有人用这种方法调用方法吗?或者说他们的速度没有区别?

  • $('#myContainer')['addClass']("active");

  • $('#myContainer').addClass("active");

我习惯于第二种方式,但第一种方式更快还是使用第一种方式还有其他好处?

3 个答案:

答案 0 :(得分:6)

JSPerf:http://jsperf.com/brackets-vs-dot-notation

根据perf,在某些浏览器中括号表示法更快。

这是一种微观优化,你应该避免。选择感觉最舒适的符号。

答案 1 :(得分:3)

不,当您动态访问某些未知属性或属性包含特殊字符时,将使用第一个版本。使用括号表示法会使您的代码更难编写,可能更难以缩小,运行效率更低。不要这样做。

另外,这很丑:)


P.S。括号表示法不是一个神奇的jQuery功能。它是JavaScript的一部分。

答案 2 :(得分:1)

取决于运行代码的javascript引擎,但由于它们都被编译为完全相同的代码,我真的怀疑是否会出现重要的性能差异。

在优化代码时,请关注循环,而不是像以下这样的简单事情:)