我正在阅读此演示文稿http://channel9.msdn.com/Events/MIX/MIX11/FRM08。史蒂夫安德森使用的结构与下面的结构类似。
function o(p) {
return { n: p };
}
从函数o创建一个对象
new o(123)
我想在这种情况下不需要新的运算符。你可以简单地写。
o(123)
这两种方式有什么不同?
答案 0 :(得分:2)
代码没有多大意义。如果在没有new
关键字的情况下使用该函数,则会创建并返回单个对象。如果它与new
关键字一起使用,就像在示例中一样,创建了两个对象,并且放弃了在函数内创建的对象。
如果从函数返回对象,则不应使用new
关键字。应该与new
关键字一起使用的函数不返回对象,而是使用this
关键字在已创建的对象中设置属性:
function o(p) {
this.n = p;
}