2009-07-28 41 views

回答

6

如果原型对象的实例已经用其他方法扩展,本地对象的实例是否需要更长的时间才能创建和/或使用更多内存?

号无论这些事情应该发生:每个对象都必须保持它的原型的引用,但引用不会得到任何较大的或如果有更多的属性添加到它引用的对象采取任何更长的时间来检索。现在

,如果你要足够额外的方法添加到prototype,它可能会开始影响到查找该类型的对象的方法所需要的时间。这会因实现而有所不同,但如果您发现有差异,我会感到震惊(我怀疑您会在它对运行时速度有显着影响之前很久才试图记住所有这些附加方法的名称)。


编辑:here's a quick & ugly test - 之前,加入500K自定义方法的Array.prototype对象后创建阵列500K实例。没有可观的区别;不用担心...

+0

由于原型遍历是O(n),所以通过多个原型扩展javascript方法查找链增加了查找时间,但是在单个原型上的方法查找是恒定时间O(1)。 – 2009-07-29 04:21:12

相关问题