Javascript对象构造函数与对象文字

时间:2013-01-09 00:09:47

标签: javascript

  

可能重复:
  creating objects - new object or object literal notation?
  Literal notation VS. constructor to create objects in JavaScript

我正在阅读我的第一个Javascript教程。

我刚刚发现了两种创建JS对象的方法。

var person = new Object();
person.name = "Tom";
person.age = "17";

var person = {};
person.name = "Tom";
person.name = "17"

这两种对象创建方式有何不同?由于第二个看起来更简单,我们是否可以在任何条件下使用它?

1 个答案:

答案 0 :(得分:28)

第二种语法不仅易于阅读,而且不仅可以在任何条件下工作,而且第一种语法可能无法在所有条件下运行:

function Object() {
    // Oh crap, we have redefined Object!
    return [];    // return an array because we are EVIL
}

var person = new Object();   // not what we think it is

{}作为一种句法结构,对这种邪恶的诡计免疫。

此外,对象文字符号可以在分析时部分优化,因为毕竟只有一个对象类型可以创建。这可能会导致性能上升微不足道。