我是新手试图了解Express 4.x路由,我正在阅读他们的指南:http://expressjs.com/guide/routing.html
在最后一段中,它说:
express.Router类可用于创建模块化可安装路由 处理程序。路由器实例是一个完整的中间件和路由 系统
和随附的代码是:
var express = require('express');
var router = express.Router();
为什么这个express.Router
构造函数在没有new
运算符的情况下被称为普通函数?他们在文档中说它是一个类,他们根据javascript样式(大写第一个字母)命名它,但是它们(以及所有其他在线示例)将它用作普通函数。
答案 0 :(得分:5)
除了传统的实例化之外,有些人还喜欢支持功能风格。这是通过在函数顶部添加这样的简单检查来完成的:
function Router() {
if (!(this instanceof Router))
return new Router();
// ...
}
这允许支持两种类型的调用(使用new
和不使用)。