代码之家  ›  专栏  ›  技术社区  ›  FriendOfFuture

向本机JavaScript对象添加方法对性能有何影响?

  •  1
  • FriendOfFuture  · 技术社区  · 16 年前

    我认识到向本机JavaScript对象(对象、函数、数组、字符串等)添加方法被一些人认为是不好的做法,但是否也有与此相关的性能问题?

    如果用其他方法扩展了本机对象的原型,那么本机对象的实例创建和/或使用更多内存的时间会更长吗?

    1 回复  |  直到 16 年前
        1
  •  6
  •   Shog9    16 年前

    如果用其他方法扩展了本机对象的原型,那么本机对象的实例创建和/或使用更多内存的时间会更长吗?

    不,这两种情况都不应该发生:每个对象都必须维护对其原型的引用,但是如果向其引用的对象添加更多的属性,则该引用将不会变得更大,也不会花费更多的时间来检索。

    现在,如果你想补充 足够地 其他方法 prototype ,它可能会开始影响在该类型的对象上查找方法所需的时间。这将随实现的不同而不同,但如果您注意到其中的区别,我会感到震惊(我怀疑在这些附加方法对运行时速度产生显著影响之前,您可能会因为记住这些方法的名称而发疯)。


    编辑: here's a quick & ugly test -在将500k自定义方法添加到 Array.prototype 对象。没有明显的区别;不用担心…