expressjs 源码 为什么用mixin拓展app, 而不是像下面用Object.create

function createApplication() {

  var app = function(req, res, next) {

    app.handle(req, res, next);

  };


  mixin(app, EventEmitter.prototype, false);

  mixin(app, proto, false);


  // 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.init();

  return app;

}

代码Github页面地址点击这里


一只名叫tom的猫
浏览 501回答 1
1回答

慕的地8271018

mixin不会改变目标对象的原型,会在原有对象基础上增加(或者说混入)新的属性,而Object.create是创建一个指定原型和若干属性的新对象。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript