Javascript 一个包含大量未使用方法的大型类的数组比包含较小类的数组需要更多的计算时间吗?

Javascript 一个包含大量未使用方法的大型类的数组比包含较小类的数组需要更多的计算时间吗?,javascript,arrays,class-method,Javascript,Arrays,Class Method,我想知道以下事情: 我有一个2d游戏的“射弹”类数组。每个弹丸的工作原理稍有不同,因此需要不同的方法。我开始意识到“射弹”类可能会爆炸,并使用多达100-200种不同的方法。在数组中循环时,大多数投射物不需要大多数方法,因此我想知道运行时是否会因为大量“可能”的计算方法而减慢。或者,如果使用大型类的大型数组会导致内存爆炸。我在使用Javascript并试图优化程序,但一般都会问 现在,我知道在较小的类中继承Sprojector类是有意义的(不管怎样,这是我出于其他原因所做的),但问题仍然存在。或

我想知道以下事情:

我有一个2d游戏的“射弹”类数组。每个弹丸的工作原理稍有不同,因此需要不同的方法。我开始意识到“射弹”类可能会爆炸,并使用多达100-200种不同的方法。在数组中循环时,大多数投射物不需要大多数方法,因此我想知道运行时是否会因为大量“可能”的计算方法而减慢。或者,如果使用大型类的大型数组会导致内存爆炸。我在使用Javascript并试图优化程序,但一般都会问


现在,我知道在较小的类中继承Sprojector类是有意义的(不管怎样,这是我出于其他原因所做的),但问题仍然存在。或者,如果这是一个问题,那么解决这个问题最明智的方法是什么?

创建大型类的多个实例不会增加太多内存使用,因为所有的方法都附加到实例原型上,所以只有一个原型(包含方法)被多个实例引用

下面是一个演示:

class-BigClass{
方法1(){}
方法2(){}
方法3(){}
// ...
}
const instance1=新的BigClass;
const instance2=新的BigClass;
log(Object.getOwnPropertyNames(BigClass.prototype));
console.log(Object.getPrototypeOf(instance1)==BigClass.prototype);//真的
console.log(Object.getPrototypeOf(instance1)==Object.getPrototypeOf(instance2));//真的

console.log(instance1.method1==instance2.method1);//true
如果没有任何东西调用这些方法,那么就没有什么东西需要“计算”。试试这个游戏,看看它是如何工作的,然后再担心性能问题。拥有这么多(未使用)的方法来处理投射物的行为表明你的代码设计存在缺陷。您可能想了解实体组件系统