В express.js мне трудно понять, почему createApplication () не выдает ошибку, учитывая, что он использует app.handle (...) в анонимной функции, которая определяет ту же самую переменную «app».
Пытался подражать этому в jsFiddle, но получил ошибку 'app is undefined', которую я ожидал.Меня беспокоит выражение назначения функции, начинающееся вверху create ():
function createApplication() {
//New variable 'app' to be defined
//by anonymous function
var app = function(req, res, next) {
app.handle(req, res, next); // But 'app' not fully defined yet!
};
mixin(app, EventEmitter.prototype, false);
mixin(app, proto, false);
// expose the prototype that will get set on requests
app.request = Object.create(req, {
app: {\ configurable: true, enumerable: true, writable: true, value: app }
})
// expose the prototype that will get set on responses
app.response = Object.create(res, {
app: { configurable: true, enumerable: true, writable: true, value: app
}})
app.init();
return app;
}