gpt4 book ai didi

javascript - 能否将一个构造函数的原型(prototype)赋值给另一个构造函数?

转载 作者:行者123 更新时间:2023-11-29 22:02:38 26 4
gpt4 key购买 nike

假设您有一个构造函数 ConstrA 并希望它继承另一个名为 SuperConstr 的构造函数及其原型(prototype)。

你能简单地这样做吗:

SuperConstr = function() {};
SuperConstr.prototype.show = function (parm) {
window.console.log(parm);
}
ConstrA = function () {
this.value = 1;
}
ConstrA.prototype = SuperConstr.prototype; // <----- Is this valid?
ConstrA.prototype.showAgain = function (parm) {
window.console.log(parm * 2);
}
obj = new ConstrA();
obj.show(obj.value); // 1
obj.showAgain(obj.value); // 2

obj 现在似乎继承自 ConstrA 和 SuperConstr,但我不确定这是执行此操作的正确方法。

换句话说,构造函数的原型(prototype)是否应该等于(指向)其构造函数的原型(prototype)?

最佳答案

这是有效的,但您不再有两个原型(prototype)对象,只有一个。

因此,您尝试委托(delegate)的任何方法实际上都不会被委托(delegate),它们都将存在于SuperConstrprototype 对象中。

对此的一个担忧是,如果您扩展 ConstrA 的原型(prototype),您实际上是在分配给 SuperContr 的原型(prototype),这可能不是您想要的。

关于javascript - 能否将一个构造函数的原型(prototype)赋值给另一个构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22753679/

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