在nodejs中启动一个快速对象的区别?
我可以用两种方式express
,也就是说我可以用两种方式初始化:
var app = express();
或者var app = new express();
从外表看来,两者都是调用构造函数,所以两者之间真的有什么区别,我主要是要求performance明智,有没有什么区别,因为我似乎没有经历过。
如果没有真正的区别,那么我所看到的每一个教程怎么会是第一种方式,而不是第二种方式,因为第二种方法似乎更清晰。
在这种情况下,将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
关键字会创build一个不必要的对象,因为createApplication
返回一个对象,所以new
关键字创build的自动被丢弃(这就是JavaScript语言的工作原理),这个对象会立即被丢弃。
所以答案是两个版本工作正常,但使用new
是不必要的。