首页 > web前端 > js教程 > 正文

在 JavaScript 中通过构造函数定义方法是否会创建重复的函数副本?

Patricia Arquette
发布: 2024-11-06 20:24:03
原创
632 人浏览过

Does Defining Methods via Constructor in JavaScript Create Duplicate Function Copies?

在 JavaScript 中通过原型与构造函数定义方法的性能影响

在 JavaScript 中,存在两种使用公共函数创建“类”的方法:使用原型或构造函数。方法 1 通过构造函数将函数分配给实例,而方法 2 利用原型在所有实例之间共享函数。

虽然方法 2 通常被认为更高效,但剥夺实例的私有实例变量是一个显着的缺点。然而,方法 1 为每个实例明显创建重复的函数副本在实践中真的发生了吗?

来自 JsPerf Benchmark 的经验证据

JsPerf 基准测试表明方法 2(原型) )在速度方面确实优于方法 1(构造函数)。

实际影响

虽然这种差异在基准测试中很明显,但其在实际应用中的相关性值得怀疑。即使在具有大量对象实例化的场景中(例如,每帧 10,000 个),这种微优化也不太可能缓解性能瓶颈。

建议

如果优化性能至关重要,建议通过原型声明方法。除此之外,方法 1 提供了更大的灵活性并遵循常见的面向对象编程约定。此外,使用下划线前缀表示的私有属性(例如 _process())可以增强封装性并阻止直接修改。

以上是在 JavaScript 中通过构造函数定义方法是否会创建重复的函数副本?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!