Skip to content

express中关于createApplication函数的疑惑。 #2

Description

@elevensky

查看express源码的时候,理解上产生了冲突。代码如下如下:

function createApplication() {
  var app = function(req, res, next) {
    app.handle(req, res, next);
  };

  mixin(app, EventEmitter.prototype, false);
  mixin(app, proto, false);

  app.request = { __proto__: req, app: app };
  app.response = { __proto__: res, app: app };
  app.init();
  return app;
}

按我理解的这些属性都是 mixin(app, proto, false);这里挂在上去的。我想着是静态方法,所以是app.handle和app.init这么调用。
但是application.js里面方法,都是直接this指向的app函数。然后调用的各种方法,按说不是只有在app.prototype下的才能用this么?
理解上有点不是很清晰,希望明白的师兄指点下。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions