我想知道人们想做什么样的事情
var x = obj.child.prop1;
doSomething(x);
doOtherThings(x);
var
不分配更多内存,而不是创建引用?是否值得避免在这种情况下重新定义x
并使用更长的引用?
答案 0 :(得分:5)
不,var
不分配更多内存。它的作用是直接创建obj.child.prop1
的引用,而不是必须遍历child
的{{1}}属性和该对象的obj
属性两次。在我知道的任何情况下,它在代码大小和执行速度方面都略微提高了效率。
答案 1 :(得分:0)
不,'var'关键字不会分配更多内存(超出轻量级引用所需的内存)。 TANSTAAFL确实如此,但另一方面效果将非常小。
我的建议:基准吧。可能你会发现你无法衡量差异。对于一些现代浏览器,您可能会发现它会使重环内的头发变慢。
答案 2 :(得分:0)
他们这样做是为了提高可读性。
如果您有像obj.child.prop1.prop2.prop3这样的引用,那么将它存储在变量中是个好主意。 Readabiliti比一些小的性能问题更值得。