创建对象的基于构造函数的语法之间有什么区别:
person = new Object()
…以及这种文字语法:
person = { property1 : "Hello" };
尽管JSLint偏爱您使用对象文字表示法,但两者似乎都做相同的事情。
哪一个更好,为什么?
除了您的第二个对象创建对象并向其添加属性之外,它们都执行相同的操作(除非某人做了不寻常的操作)。但是文字表示法在源代码中占用的空间更少。可以很清楚地知道发生了什么,因此使用new Object(),您实际上只是在输入更多内容,并且(从理论上讲,如果JavaScript引擎未对其进行优化)执行不必要的函数调用。
new Object()
这些
person = new Object() /*You should put a semicolon here too. It's not required, but it is good practice.*/ -or- person = { property1 : "Hello" };
从技术上讲,不要做同样的事情。第一个只是创建一个对象。第二个创建一个并分配一个属性。为了使第一个相同,然后需要第二个步骤来创建和分配属性。
某人可以做的“异常事情”将是阴影或分配给默认Object全局变量:
Object
// Don't do this Object = 23;
在那种非常不寻常的情况下,new Object将失败,但是{}会起作用。
new Object
{}
在实践中,没有理由使用new Object而不是{}(除非您已经完成了非常不寻常的事情)。