Tag: 原型inheritance

util.inherits – 替代或解决方法

我是一个n00b节点,并且findutil.inherits()非常有用,除了它似乎取代原始对象的整个原型的事实。 例如: var myClass = function(name){ this._name = name; }; myClass.prototype = { (…) }; util.inherits(myClass, require('events').EventEmitter); 似乎抹去了我原来的原型。 这给我带来了两个不便: 1 – 我必须在调用inherits之后向我的原型声明添加属性, var myClass = function(name){ this._name = name; }; util.inherits(myClass, require('events').EventEmitter); myClass.prototype.prop1 = function(){…}; myClass.prototype.prop2 = function(){…}; 最重要的是,我认为我不能从两个或更多不同的类inheritance。 任何人都可以向我解释为什么这是有道理的,什么是解决这个问题的好办法? 谢谢

util.inherits – 如何调用超级实例的方法?

我正在玩node.js util.inherits 方法,似乎无法得到所需的行为。 var util = require("util"); function A() { this.name = 'old'; } A.prototype.log = function(){ console.log('my old name is: '+ this.name); }; function B(){ A.call(this); this.name = 'new'; } util.inherits(B, A); B.prototype.log = function(){ B.super_.prototype.log(); console.log('my new name is: ' + this.name); } var b = new B(); b.log(); 结果是: my old name […]

Node.js / Express.js – 如何重写/拦截res.render函数?

我正在用Connect / Express.js构build一个Node.js应用程序,并且我想拦截res.render(view,option)函数在将代码转发到原始渲染函数之前运行一些代码。 app.get('/someUrl', function(req, res) { res.render = function(view, options, callback) { view = 'testViews/' + view; res.prototype.render(view, options, callback); }; res.render('index', { title: 'Hello world' }); }); 它看起来像一个人为的例子,但它确实适合我正在构build的整体框架。 我对JavaScript和OOP和Prototypalinheritance的知识有点弱。 我将如何做这样的事情? 更新:经过一些实验,我想出了以下内容: app.get('/someUrl', function(req, res) { var response = {}; response.prototype = res; response.render = function(view, opts, fn, parent, sub){ view = 'testViews/' + […]