可能重复:
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"
这两种对象创建方式有何不同?由于第二个看起来更简单,我们是否可以在任何条件下使用它?
答案 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
但{}
作为一种句法结构,对这种邪恶的诡计免疫。
此外,对象文字符号可以在分析时部分优化,因为毕竟只有一个对象类型可以创建。这可能会导致性能上升微不足道。