javascript – 在自我实例化的构造函数中使用对象文字是否有性能优势?

前端之家收集整理的这篇文章主要介绍了javascript – 在自我实例化的构造函数中使用对象文字是否有性能优势?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

在自我实例化的构造函数中使用对象文字是否有性能优势?

例子

对象文字

var foo = { 
    //... 
};

自我实例化的构造函数

var foo = new function () {
    //...
};

解决方法

是(对象文字会更快),但它们在implementation1中略有不同,代表不同的目标.构造函数形式“必须做更多的东西”,而文字形式也可以更高度优化 – 它是一个定义(一个尚未修复的属性集),而不是一系列语句.

即使micro-benchmark(这很有趣,感谢Arun!)可能会显示一个“慢得多”,但它在实际程序中只是无关紧要,因为在任一构造中花费的相对时间量都没有接近.

1当使用构造函数a prototype must be introduced时.由于它是固定链行为,因此不是对象文字的情况.

Every object created by a constructor has an implicit reference (called the object’s prototype) to the value of its constructor’s “prototype” property.

其他开销工作包括创建新的执行上下文,复制其他属性,甚至检查返回值. (在发布的情况下,它还必须创建一个新的一次性函数对象,甚至可以使用它作为构造函数本身添加一些additional overhead).

2我确定有反例.但是对于这种情况,我只能希望问题已经被识别和删除所有其他瓶颈进行了彻底的基准测试.

猜你在找的JavaScript相关文章