具体来说,这是代码:
var style = el.style;
var x = style.left;
var y = style.top;
比这个更有效:
var x = el.style.left;
var y = el.style.top;
我最近和同事谈过这件事。第一个片段保存了一个getter调用,因为它缓存了样式对象,但它创建了另一个对样式对象的引用,并使用了另一个变量。
答案 0 :(得分:0)
这并不重要。
刚刚在jsperf上为你写了一个测试,看看...脖子和脖子,几乎没有区别(我的机器没有统计学上的显着差异):
http://jsperf.com/alias-vs-dot-lookup-speed
欢呼声。
答案 1 :(得分:0)
这个答案取决于你真正关心的问题:
答案 2 :(得分:0)
我认为这是过早优化,除非你遇到某种性能问题我不会担心你采取哪种方法(特别是对于像这样小的代码)。如果样式属性已经被DOM内部缓存,我不会感到惊讶,因此每次访问它时都不会有任何额外的开销。
建议缓存仅在JavaScript中使用两次的对象
要回答你的问题 - 如果在访问它时有很多开销,那么通常这是一个好主意缓存,例如也许它是每次访问时创建的,或者导致对集合进行昂贵的查找。但是,如果它纯粹直接返回对象,那么我认为没有任何好处。
如果你得到一个精确的答案,那么获得它的唯一方法就是实际对两个版本进行基准测试。但是,对于您的特定代码,我会说任何性能差异都可以忽略不计。但是,引入另一个变量将为编译器增加不必要的开销(虽然很小)。