我正在开发一个有趣的javascript游戏,我有一个角色对象数组。我定期对对象中的字段进行检查(如字符[i] .xpos,字符[i] .ypos等)。将函数添加到类的原型以处理向左和向右移动,并定期调用它,或者更有效地使用调整角色对象的x和y pos的全局函数是否更有效?
感谢您的帮助!
编辑: 谢谢你的答案。我会尝试更具体。我有一个全局更新函数,它使用一个间隔调用,并在其中有一堆代码,用于更改对象的属性,如:
globalupdate() {
characters[i].posx++;
characters[i].posy++;
... and more code like that
}
在该类中编写原型函数并调用它会更快吗?像:
globalupdate() {
characters[i].update();
}
感谢所有快速回复!
答案 0 :(得分:1)
我刚刚阅读了 John Resig ( jQuery 的作者)关于该主题的文章。从这一点来看,最重要的是没有多个计时器(即间隔和超时),因为存在冲突的可能性。
因此,如果您的全局功能将导致更少的计时器,这可能对整体性能有利。
修改:我是否正确了解您的更新,这是您想要了解的内容:给定一段代码,
{
object1.<key> = <value> ;
object2.<key> = <value> ;
/* ... */
objectN.<key> = <value> ;
}
和另一个代码块,
{
object.prototype.change = function( ) { this.<key> = <value> ; } ;
list = [object1,object2,/* ... */,objectN] ;
for(i = 0 ; i < list.length ; i++) list[i].change( ) ;
}
哪一个会执行得更快?
答案 1 :(得分:0)
对于所有性能问题,只需1分钟就可以为每个案例编写一个测试代码,请尝试。
我认为与更新的“可见”部分相比,差异是可以忽略的,即更新DOM等。还要记住,根据使用的浏览器,它可能会有所不同。