Javascript 在超类中获取子类构造函数
这段代码按预期工作,但是如果不在每个子类中设置myConstructor,我如何编写此类新代码呢?好吧,我不知道目标是什么,但要回答您的问题:Javascript 在超类中获取子类构造函数,javascript,Javascript,这段代码按预期工作,但是如果不在每个子类中设置myConstructor,我如何编写此类新代码呢?好吧,我不知道目标是什么,但要回答您的问题: var Super = function() {} Super.prototype.newOfThisKind = function() { return new this.myConstructor() } var Sub1 = function() { this.myConstructor = Sub1 } var Sub2 = functi
var Super = function() {}
Super.prototype.newOfThisKind = function() {
return new this.myConstructor()
}
var Sub1 = function() { this.myConstructor = Sub1 }
var Sub2 = function() { this.myConstructor = Sub2 }
Sub1.prototype = new Super()
Sub2.prototype = new Super()
console.assert(new Sub1().newOfThisKind() instanceof Sub1)
console.assert(new Sub2().newOfThisKind() instanceof Sub2)
我认为这是不可能的。但你为什么需要它呢?如果只是为了触发一些动作,那就创建第二个方法。我不知道你的意思。我们的目标是在任何超级实例上使用这种类型的newof。
var Super = function () { }
Super.prototype.newOfThisKind = function () {
return Object.create(this);
}
var Sub1 = function () { }
var Sub2 = function () { }
Sub1.prototype = new Super()
Sub2.prototype = new Super()
console.assert(new Sub1().newOfThisKind() instanceof Sub1)
console.assert(new Sub2().newOfThisKind() instanceof Sub2)