Rew*_*ind 5 javascript inheritance class
我已经设置了一个基类作为标准:
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)
它想要覆盖的子类是基类函数,但是想要在新的改进定义中调用基类函数.
这是可能的,如果是的话,怎么办呢?
它类似于继承的构造函数中的调用.您仍然可以访问"超级"方法MyBase.prototype.MySuperFunction
(您分配的位置),因此请使用:
MyBase.prototype.MySuperFunction.call(this, arg1);
Run Code Online (Sandbox Code Playgroud)
对于更动态的方法,你甚至可以使用Object.getPrototypeOf
来获取原型,但是要注意的是,它的工作原理与动态继承.如果您有需要调用他们的父母很多方法,它可以帮助别名MyBase.prototype
作为super
变量,它是儿童原型对象的所有函数访问(见这个答案的例子)).
请申请以下内容:-
MyBase.prototype.MySuperFunction.call(this, arg1);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
566 次 |
最近记录: |