Javascript匿名函数向它添加对象

时间:2017-09-17 06:07:46

标签: javascript node.js express

你能解释一下发生了什么或者一些链接来理解下面的代码吗?

\0

这里的app类型是函数,但是在分配了其他对象的情况下,然后在返回后如何访问这些对象

1 个答案:

答案 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();