你能解释一下发生了什么或者一些链接来理解下面的代码吗?
\0
这里的app类型是函数,但是在分配了其他对象的情况下,然后在返回后如何访问这些对象
答案 0 :(得分:1)
一点解释:
app
被命名为function:
var app = function(req, res, next) {
app.handle(req, res, next);
};
您看到的mixin
用于扩展原始app
对象的属性。
mixin(app, EventEmitter.prototype, false);
mixin(app, proto, false);
下面,此代码定义app.request
上的一些属性,您可以查看docs以获取更多信息。
Object.defineProperties()方法定义新的或修改现有的 直接在对象上的属性,返回对象。
在JS函数中是对象,因此可以拥有自己的属性(在本例中为request
)。
// 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
对象:
app.init();