gpt4 book ai didi

javascript - 如何在javascript中创建父类的新实例

转载 作者:行者123 更新时间:2023-11-28 01:36:48 24 4
gpt4 key购买 nike

我有一个继承自另一个类的类。在基类中,我想知道是否可以创建并返回调用父类的新实例。

这是一个例子:

基础:

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 创建一个新实例的原因是我希望映射器在返回实例之前对数据执行一堆操作。对于从 Base 继承的所有类,它需要做的事情都是相同的。我不想用样板文件来创建自己的新实例,从而使我的类变得困惑。

这可能吗?我怎样才能实现这样的目标?

最佳答案

假设FooThing.prototype.constructor == FooThing,你可以使用

ThingBase.prototype.mapper = function(data) {
return new this.constructor(crunch(data));
};

所有其他解决方案都会“用样板[代码]使[您的]类变得困惑”,是的,但是它们不依赖 correctly set constructor property .

关于javascript - 如何在javascript中创建父类的新实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21446410/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com