我一直在阅读很多关于javascript中"继承"的文章.其中一些使用,new而其他人推荐Object.Create.我读的越多,我就越困惑,因为它似乎存在无穷无尽的变体来解决继承问题.
有人可以向我展示最受欢迎的方式(如果有的话,还是事实上的标准)?
(我想有一个基础物体Model,我可以延伸RestModel或LocalStorageModel).
我已经设置了一个基类作为标准:
MyBase = function() {
this.m_Stuff = 0; // etc
};
MyBase.prototype.MySuperFunction = function (arg1) {
alert("Hello" + arg1);
};
Run Code Online (Sandbox Code Playgroud)
接下来,我设置了另一个继承MyBase的类
MyChild = function () {
MyBase.call(this);
this.m_OtherStuff = 1; // etc
};
MyChild.prototype = new MyBase(); // innherit
Run Code Online (Sandbox Code Playgroud)
但那时(这是我不知道该怎么做)我想用更好的一个覆盖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");
};
Run Code Online (Sandbox Code Playgroud)
它想要覆盖的子类是基类函数,但是想要在新的改进定义中调用基类函数.
这是可能的,如果是的话,怎么办呢?