gpt4 book ai didi

javascript - 父访问子原型(prototype)函数

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

我正在通过以下示例学习 OOP J。这一切都很好很酷,我只是想知道是否可以访问 Student 的原型(prototype)方法 sayGoodBye,我知道这可以在 PHP 中使用抽象方法来实现,但只是想知道有没有办法在 JS OOP 中做到这一点。谢谢

我可能不是很清楚,代码示例很完美,只是想知道是否可以做到

Person.prototype.walk = function(){
//Goog bye is the method in Student.
this.sayGoodBye();
};

工作代码。

function Person(firstName) {
this.firstName = firstName;
}

Person.prototype.walk = function(){
alert("I am walking!");
};
Person.prototype.sayHello = function(){
alert("Hello, I'm " + this.firstName);
};

function Student(firstName, subject) {
Person.call(this, firstName);

this.subject = subject;
};

Student.prototype = Object.create(Person.prototype); // See note below

Student.prototype.constructor = Student;

Student.prototype.sayHello = function(){
alert("Hello, I'm " + this.firstName + ". I'm studying " + this.subject + ".");
};

Student.prototype.sayGoodBye = function(){
alert("Goodbye!");
};

var student1 = new Student("Janet", "Applied Physics");
student1.sayHello(); // "Hello, I'm Janet. I'm studying Applied Physics."
student1.walk(); // "I am walking!"
student1.sayGoodBye(); // "Goodbye!"

alert(student1 instanceof Person); // true
alert(student1 instanceof Student); // true

最佳答案

与 PHP 不同,JavaScript 语言本身没有抽象方法之类的东西;如果您想在扩展原型(prototype)的对象中强制实现,您可以编写如下内容:

Person.prototype.sayGoodbye = function() {
throw "You must implement me!";
};

关于javascript - 父访问子原型(prototype)函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24564512/

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