让我说我有这样的事情:
var MyNamespace = {
Presets: {
Thing: {
something: {
rate: 10
}
}
}
};
如果我在每秒触发数百次的rate
函数中使用update()
,那么最好将对该变量的引用缓存为:
var rate = MyNamespace.Presets.Thing.something.rate;
function update() {
var a = 5 + rate;
console.log(a);
return a;
}
或者我可以这样做:
function update() {
var a = 5 + MyNamespace.Presets.Thing.something.rate;
console.log(a);
return a;
}
我认为缓存会更快,但我的问题是它是否足够足以来证明这样做。它会是微观优化,还是我应该担心的事情?
澄清:
update()
是班级成员。requestAnimationFrame()
来更新游戏逻辑。当它这样做时,它会调用我的班级“update()
。我做了jsPerf test。它没有显示出显着(或持久)的差异:
有时它表明没有缓存的测试有点慢。但它有时,它不一致,而且不是很多。不过,我想JavaScript会优化这样的东西。
答案 0 :(得分:0)
据我所知,JavaScript总是使用对象作为引用。这就是为什么有些JS框架具有对象的克隆方法,甚至对于深层嵌套对象也是如此。在我看来,这只是品味或可读性的问题。在我看来,你的第一个例子更容易阅读。