我在 javascript 中与 oop 争论了几天,但我没有找到解决方案。
我创建了 3 个对象,一个超类,一个子类和一个继承管理器,它们应该对我的子类执行所有“原型”魔术。
继承管理器:
Inheritance_Manager = {};
Inheritance_Manager.extend = function(subClass, baseClass) {
function inheritance() {
}
inheritance.prototype = baseClass.prototype;
subClass.prototype = new inheritance();
subClass.prototype.constructor = subClass;
subClass.baseConstructor = baseClass;
subClass.superClass = baseClass.prototype;
};
超级(父)类:
SDSection = function(sectionId, resourceId) {
this.self = this;
this.sectionId = sectionId;
this.resourceId = resourceId;
...
};
SDSection.prototype.doSetups = function() {
...
};
子类:
TypedSectionHandler = function(sectionId, resourceId) {
SDSection.call(this, sectionId, resourceId);
...
};
Inheritance_Manager.extend(TypedSectionHandler, SDSection);
TypedSectionHandler.prototype.doSetups = function() {
...
SDSection.doSetups.call(this);
...
};
我想做的很简单,用其他编程语言,如 php 或 java。我想从“TypedSectionHandler”类型的子类中的方法“doSetups”调用父类“SDSection”中覆盖的“doSetups”方法。
我在这个问题上苦苦挣扎了大约 1 周,我尝试了不同的解决方案,从基本到更复杂,但似乎没有任何效果。
每次在chrome或firefox中执行脚本时,我都会收到错误“无法调用未定义的方法调用”或更简单,“SDSection.doSetups”未定义。
至少我从这里选择了上述方法并根据我的需要对其进行了调整,但无论如何它都不起作用,并且浏览器正在退出并出现同样的错误。慢慢地,我变得非常疯狂。:)
有人知道我做错了什么以及可行的解决方案如何?
谢谢
你做