1

connect js ライブラリのソース コードを見ていると、興味深いことがわかります。proto のすべてのメソッドを app オブジェクトにマージします。このデザインパターンに名前はありますか?

function createServer() {
  function app(req, res, next){ app.handle(req, res, next); }
  utils.merge(app, proto);
  utils.merge(app, EventEmitter.prototype);
  app.route = '/';
  app.stack = [];
  for (var i = 0; i < arguments.length; ++i) {
    app.use(arguments[i]);
  }
  return app;
};
4

1 に答える 1

1

それを呼び出すのに最も近いのはmixinだと思います。つまり、オブジェクト (この場合は関数) の既存の定義を取得し、別のオブジェクトからプロパティをコピーします。

ソースを読むと、メソッドがソース オブジェクトからターゲット オブジェクトにプロパティをコピーするだけであることがわかります。

于 2013-05-02T04:49:28.807 に答える