我试图找出express.Router()
是否返回路由器的新实例。因此,在阅读代码时,我会遇到这个基本的JavaScript问题。
./路由器/ index.j
var proto = module.exports = function(options) {
options = options || {};
function router(req, res, next) {
router.handle(req, res, next);
}
// mixin Router class functions
router.__proto__ = proto;
router.params = {};
router._params = [];
router.caseSensitive = options.caseSensitive;
router.strict = options.strict;
router.stack = [];
return router;
};
任何时候执行外部函数(我认为通过express.Router()),是否会创建一个新的内部函数?我相信如果它的var router = function(...){...}那么它就是。但是我不确定这个案子。
答案 0 :(得分:2)
是的,每次都会创建一个新的函数对象
函数声明实际上与挂起的命名函数表达式相同:
function f() {
}
vs
var f = function f() {}; // + hoisting