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 回答