JavaScript 中通过原型与构造函数定义方法的性能影响
在 JavaScript 中,存在两种创建具有公共函数的“类”的方法:使用原型或构造函数。方法 1 通过构造函数将函数分配给实例,而方法 2 利用原型在所有实例之间共享函数。
虽然方法 2 通常被认为更高效,但剥夺实例的私有实例变量是一个显着的缺点。然而,方法 1 为每个实例明显创建的重复函数副本在实践中确实发生了吗?
来自 JsPerf Benchmark 的经验证据
JsPerf 基准测试表明方法 2(原型) )在以下方面确实优于方法 1(构造函数)
实际影响
虽然这种差异在基准测试中很明显,但其在实际应用中的相关性值得怀疑。即使在具有大量对象实例化的场景中(例如,每帧 10,000 个),这种微优化也不太可能缓解性能瓶颈。
建议
如果优化性能至关重要,建议通过原型声明方法。除此之外,方法 1 提供了更大的灵活性并遵循常见的面向对象编程约定。此外,使用下划线前缀表示的私有属性(例如 _process())可以增强封装性并阻止直接修改。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3