我在看expressjs的源代码
你可能也想看看这个问题如何
app应该工作。
utils-merge上面和做类似的事情之间有什么区别:var util = require('util');....util.inherit(app, proto);util.inherit(app, EventEmitter);
他们在做完全不同的事情:
utils-merge
将属性从源对象合并到目标对象。实用程序继承
将原型方法从一个构造函数继承到另一个构造函数。 构造函数的原型将设置为从superConstructor创建的新对象。
还请阅读他们的
资料!
app(同时是用于奇数的原因的函数)是不是一个构造,但应该是一个(纯)对象-的 实例
所作
createApplication。因此,这里没有办法进行“类继承”。而且,您不能
utils.inherits在同一个构造函数上多次使用它,因为它确实会
覆盖 其
.prototype属性。
取而代之的是,
mixin功能将只是复制所有属性
proto,然后所有属性从
EventEmitter.prototype该
app对象。
而且这仍在尝试扩展属性吗?我有点在这里迷路:
app.request = { __proto__: req, app: app }; // what is the equivalentfor this in util?
app.response = { proto: res, app: app };
Object.create为此请使用本机函数:
app.request = Object.create(req);app.request.app = app;app.response = Object.create(res);app.response.app = app;
如果是这样,即使
util.inherit使用它,仍然可以使用吗?app.request = util.inherit(app, req) // Or something like that?
不,真的不是。
jshint说
__proto__很可惜。
是的,您应该
Object.create改用。但是非标准
__proto__可能会保留以保持兼容性。
另外我也看到了吗?
var res = module.exports = { __proto__: http.ServerResponse.prototype};可以吗?
var res = module.exports = util.inherits...??
不,同样是以下情况
Object.create:
var res = module.exports = Object.create(http.ServerResponse.prototype);
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)