在 JavaScript 中执行 OOP 的一种常见方法是使用带有附加函数的对象,而不是使用内置的原型、构造函数和new
操作员。 Mixin 通常用于通过粘贴成员变量来组合 2 个对象,模拟继承。
衡量这种做法是否会对性能产生影响是很困难的,因为在这种情况下,具体的基准测试并不能说明太多问题。是否存在这样的性能惩罚,其严重程度如何?
如果你使用构造函数、原型进行 OOP,new
等等,这是V8(Chrome和Node.js中的JS引擎)专门优化的。您的用户属性甚至将与其内部属性并排存储,就像在 C++ 或 Java 对象中一样。
用于调优 V8 的基准之一是高度面向对象的,如下所示http://octane-benchmark.googlecode.com/svn/latest/deltablue.js http://octane-benchmark.googlecode.com/svn/latest/deltablue.js
如果您动态附加属性或执行其他一些卑鄙的技巧,您当然会混淆此启发式方法,并可能使自己陷入困境。
这当然是特定于引擎的。
我还应该提到一般免责声明,如果您正在执行诸如“单击处理程序显示文本区域”之类的 UI 代码,那么这并不重要。您可能会收集每个方法调用的堆栈跟踪,但不会注意到任何性能问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)