我可以通过express
两种方式使用,即我可以通过两种方式对其进行初始化:
var app = express();
或者var app = new express();
从表面上看,两者都在调用构造函数,所以两者之间真的有什么区别吗,我主要是问性能方面,真的有区别吗,因为我似乎没有经历过。
如果没有真正的区别,我看到的每个教程都是第一种方式而不是第二种方式,因为第二种方式似乎更清晰。
在这种情况下express()
,作为函数调用更正确。
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
关键字将创建一个不必要的对象,该对象将立即被丢弃,因为createApplication
返回一个对象,关键字创建的自动this
被new
丢弃(这正是 JavaScript 语言的工作原理)。
所以答案是两个版本都可以正常工作,但new
这里不需要使用。