为了紧凑而重新声明var x = obj.prop是否效率低下?

时间:2010-12-27 23:55:52

标签: javascript

我想知道人们想做什么样的事情

var x = obj.child.prop1;
doSomething(x);
doOtherThings(x);

var不分配更多内存,而不是创建引用?是否值得避免在这种情况下重新定义x并使用更长的引用?

3 个答案:

答案 0 :(得分:5)

不,var不分配更多内存。它的作用是直接创建obj.child.prop1的引用,而不是必须遍历child的{​​{1}}属性和该对象的obj属性两次。在我知道的任何情况下,它在代码大小和执行速度方面都略微提高了效率。

答案 1 :(得分:0)

不,'var'关键字不会分配更多内存(超出轻量级引用所需的内存)。 TANSTAAFL确实如此,但另一方面效果将非常小。

我的建议:基准吧。可能你会发现你无法衡量差异。对于一些现代浏览器,您可能会发现它会使重环内的头发变慢。

答案 2 :(得分:0)

他们这样做是为了提高可读性。

如果您有像obj.child.prop1.prop2.prop3这样的引用,那么将它存储在变量中是个好主意。 Readabiliti比一些小的性能问题更值得。