【发布时间】:2014-02-22 03:51:39
【问题描述】:
我有一个继承自另一个的类。在基类中,我想知道是否可以创建并返回调用父类的新实例。
这是一个例子:
基地:
var util = require('util');
var ThingBase = function(options) {
}
ThingBase.prototype.mapper = function(data) {
// do a bunch of stuff with data and then
// return new instance of parent class
};
家长:
var FooThing = function(options) {
ThingBase.call(this, options);
};
util.inherits(FooThing, ThingBase);
FooThing.someMethod = function() {
var data = 'some data';
var newFooThing = this.mapper(data); // should return new FooThing instance
};
我不只是从 someMethod 创建一个新实例的原因是我希望 mapper 在它返回一个实例之前对数据做一堆事情。对于从 Base 继承的所有类,它需要做的事情是相同的。我不想用样板把我的类弄得乱七八糟,以创建一个自己的新实例。
这可能吗?我怎样才能实现这样的目标?
【问题讨论】:
-
util.inherits长什么样子?如果需要,可以在此处保存对父构造函数的引用。 -
我认为
util.inherits来自 Node.js。 -
我担心你混淆了术语?通常
Child类确实继承自Parent类,或者Specific类确实继承自Base类。我从未听说过Parent继承自任何东西(除非您在讨论的层次结构中有 3 个类,否则可能会有GrandParent)。
标签: javascript