for循环访问对象文字的属性VS从Object编译初始化的对象

时间:2016-05-19 10:37:39

标签: javascript

我是一位采访者问的,以下代码之间是否存在差异:

var o1 = {
    a: 1,
    b: 2,
    c: 3
}

for( var p in o1) {
    // ...
}

VS

var o2 = new Object()
o2.a = 1;
o2.b = 2;
o2.c = 3;

for( var p in o2) {
   // ...
}

我无法想到任何差异,有没有?

1 个答案:

答案 0 :(得分:1)

假设new Object()行中遗漏的分号是无意的,那么没有区别......

http://www.w3schools.com/js/js_object_definition.asp

...除了第一个 - 根据此评论 - 执行得更快。

  

上面两个例子完全相同。无需使用新的Object()。   为简单起见,可读性和执行速度,请使用第一个(对象文字方法)。