gpt4 book ai didi

javascript - 在 Javascript 中从子方法调用父方法。

转载 作者:行者123 更新时间:2023-12-02 18:51:06 25 4
gpt4 key购买 nike

我有一个名为 person 的类:

function Person() {}

Person.prototype.walk = function(){
alert ('I am walking!');
};
Person.prototype.sayHello = function(){
alert ('hello');
};

学生类继承自person:

function Student() {
Person.call(this);
}

Student.prototype = Object.create(Person.prototype);

// override the sayHello method
Student.prototype.sayHello = function(){
alert('hi, I am a student');
}

我想要的是能够从其子方法 sayHello 方法中调用父方法 sayHello,如下所示:

Student.prototype.sayHello = function(){
SUPER // call super
alert('hi, I am a student');
}

这样,当我有一个 Student 实例并且我在此实例上调用 sayHello 方法时,它现在应该提醒“你好”,然后提醒“嗨,我是一名学生”。

在不使用框架的情况下调用 super 的优雅且(现代)的方式是什么?

最佳答案

你可以这样做:

Student.prototype.sayHello = function(){
Person.prototype.sayHello.call(this);
alert('hi, I am a student');
}

您还可以通过执行以下操作使其更通用:

function Student() {
this._super = Person;
this._super.call(this);
}

...

Student.prototype.sayHello = function(){
this._super.prototype.sayHello.call(this);
alert('hi, I am a student');
}

...不过,说实话,我认为不值得在那里进行抽象。

关于javascript - 在 Javascript 中从子方法调用父方法。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15820165/

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