栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在node.js中扩展类的不同方式

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在node.js中扩展类的不同方式

我在看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 equivalent

for 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);


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/413299.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号