我对 JavaScript 有点陌生。我已经在客户端到处使用它一段时间了,但现在我正在探索服务器端 Javascript。这个问题是关于 Javascript 对象的,关于它们的创建和它们属性的有效定义。
我已经(多次)看到以 var o = {};
创建对象现在优于 var o = new Object();
以提高性能原因。向对象添加属性的方式在性能上是否存在差异?
例如,这种情况在性能上有什么区别吗:
var o = {
thing1: "yardigooven",
thing2: "goovenyardi",
};
还有这种情况?
var o = {};
o.thing1 = "yardigooven";
o.thing2 = "goovenyardi";
我假设第一种情况是首选,但我想在以这种方式编写所有对象定义之前确定一下。
谢谢。
最佳答案
首先,var o = {};
和 var o = new Array();
不一样。第一个初始化一个对象,第二个初始化一个数组。 var o = {};
和 var o = new Object();
是等价的。
现在谈谈使用对象字面量而不是在其后添加属性的性能。哪个最快?答案是,我们不在乎,您也不应该在乎。 如果在性能上存在差异,它会非常小,永远不会产生影响,即使您一次创建 100 万个对象,这种情况也不太可能发生。
这称为过早优化,是许多中级程序员的祸根。除非您开始遇到性能问题,否则不要担心优化任何东西。然后你使用分析器来检测瓶颈在哪里并解决它。只需担心如何制作您的应用。
为了完整起见,here is a test I ran on jsperf .在我的浏览器 Chrome 15 中,对象字面量初始化速度提高了 53%。哇,53%,很大吧?除非您将鼠标放在初始化后使用属性的测试的工具提示上,否则您会看到类似的内容
Ran 681,285 times in 0.077 seconds.
您的数字可能有所不同,但您将能够观察到被认为最慢的方法以任何标准衡量仍然非常快。我认为可以肯定地说,两者对于任何目的都足够快。只需使用您喜欢的那个即可。
关于javascript - 在 JavaScript 中,哪种创建具有属性的对象的方法最有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8387615/