gpt4 book ai didi

函数的 Javascript 类继承

转载 作者:数据小太阳 更新时间:2023-10-29 05:55:19 25 4
gpt4 key购买 nike

我已经设置了一个标准的基类:

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(您分配它的位置)上访问“super”方法,因此请使用:

MyBase.prototype.MySuperFunction.call(this, arg1);

对于更动态的方法,您甚至可以使用 Object.getPrototypeOf 来获取原型(prototype),但要注意它适用于动态继承。如果你有很多方法需要调用它们的父类,将 MyBase.prototype 别名作为 super 变量会很有帮助,子原型(prototype)上的所有函数都可以访问它对象(参见 this answer 的例子)。

关于函数的 Javascript 类继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16963111/

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