在 JavaScript 中,开发人员有两个主要选项来创建类和定义其公共方法:通过原型或使用 this在构造函数中。虽然这些方法的效率一直是争论的主题,但现实世界的经验揭示了它们性能差异的实际意义。
方法 1 使用原型,通常会导致更快的方法访问,因为所有实例该类共享相同的函数引用。但是,该方法禁止使用私有实例变量。
方法二,在构造函数中使用 this,则授予私有实例变量,但理论上需要更多的内存和时间让每个实例创建自己的实例函数复制。
与这些理论假设相反,网络浏览器通常会针对此类场景进行优化。他们可以识别并共享函数副本,从而消除个性化函数分配的潜在内存和性能开销。
经验证据支持这种优化。 jsperf.app/prototype-vs-this 一致地证明了原型方法的速度优势。
但是,这种性能差异的实际影响是值得商榷的。对于大多数情况,除非快速实例化大量对象,否则它不太可能成为性能瓶颈的根源。
在性能是关键因素的极少数情况下,可能需要进行微优化(例如使用原型方法)值得的。然而,对于一般开发来说,选择符合个人喜好和代码清晰度的方法可能会更有影响力。
此外,JavaScript 在私有变量前添加下划线 (_process()) 的约定提供了一层隐含的隐私。虽然开发人员可能会尊重这一约定,但在大多数情况下可能没有必要强制执行真正的隐私。
以上是原型方法与构造函数:哪个在 JavaScript 中提供更好的性能?的详细内容。更多信息请关注PHP中文网其他相关文章!