gpt4 book ai didi

javascript - 子类互相覆盖对方的方法

转载 作者:行者123 更新时间:2023-11-30 10:48:19 26 4
gpt4 key购买 nike

感谢 stackoverflow 海报的帮助,我设置了一些 oop javascript。然而,我遇到了另一个障碍。

我有两个具有相同继承的不同类。然后它们都有一个名称相同但做不同事情的函数。问题是,如果最后定义了 ClassB,那么即使我有一个 ClassA 对象,并编写 classAInstance.MyFunction();它返回2,即ClassB的同名函数。

BaseClass = function(){
...init some stuff...
};

ClassA = function(){
BaseClass.call(this);
...init some stuff...
};
ClassA.prototype = BaseClass.prototype; // innherit
ClassA.prototype.MyFunction(){
return 1;
};

ClassB = function(){
BaseClass.call(this);
...init some stuff...
};
ClassB.prototype = BaseClass.prototype; // innherit
ClassB.prototype.MyFunction(){
return 2;
}

最佳答案

之所以如此,是因为ClassA和ClassB的原型(prototype)都指向同一个对象。我不确定您的用例是什么,但将原型(prototype)作为实例也一样好。

ClassA.prototype = new BaseClass();

...

ClassB.prototype = new BaseClass();

关于javascript - 子类互相覆盖对方的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7016288/

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