我已经设置了一个基类作为标准:
MyBase = function() {
this.m_Stuff = 0; // etc
};
MyBase.prototype.MySuperFunction = function (arg1) {
alert("Hello" + arg1);
};
接下来我设置另一个继承MyBase的类
MyChild = function () {
MyBase.call(this);
this.m_OtherStuff = 1; // etc
};
MyChild.prototype = new MyBase(); // innherit
但是然后(这是我不知道该怎么做的一点)我想用更好的方法覆盖 MyBase 的 MySuperFunction,但在此过程中调用基类函数:
MyChild.prototype.MySuperFunction = function (arg1, arg2) {
MyBase.MySuperFunction(arg1); // THIS LINE IS THE LINE I DONT KNOW HOW TO DO
alert("You is a " + arg2 + "'th level idiot");
};
它的子类想要重写基类函数,但想要在新的改进定义中调用基类函数。
这可能吗?如果可以,该怎么做?
它类似于继承的构造函数中的调用。您可以访问仍然打开的“超级”方法MyBase.prototype.MySuperFunction
(你分配它的地方),所以使用:
MyBase.prototype.MySuperFunction.call(this, arg1);
对于更动态的方法,您甚至可以使用Object.getPrototypeOf
获取原型,但要注意它适用于动态继承。如果您有许多需要调用其父级的方法,那么使用别名会很有帮助MyBase.prototype
as a super
子原型对象上的所有函数都可以访问的变量(请参阅这个答案举个例子))。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)