在nodejs中启动一个快速对象的区别?

我可以用两种方式express ,也就是说我可以用两种方式初始化:

var app = express(); 或者var app = new express();

从外表看来,两者都是调用构造函数,所以两者之间真的有什么区别,我主要是要求performance明智,有没有什么区别,因为我似乎没有经历过。

如果没有真正的区别,那么我所看到的每一个教程怎么会是第一种方式,而不是第二种方式,因为第二种方法似乎更清晰。

在这种情况下,将express()作为函数调用更加正确。

https://github.com/visionmedia/express/blob/8a1e865e37016f279d957f04117007c36ac195e3/lib/express.js#L32

 function createApplication() { var app = connect(); utils.merge(app, proto); app.request = { __proto__: req, app: app }; app.response = { __proto__: res, app: app }; app.init(); return app; } 

这基本上是一个工厂函数,而不是一个构造函数。 使用new关键字会创build一个不必要的对象,因为createApplication返回一个对象,所以new关键字创build的自动被丢弃(这就是JavaScript语言的工作原理),这个对象会立即被丢弃。

所以答案是两个版本工作正常,但使用new是不必要的。