创建一个Teacher类,继承Person类,它有新的属性所教科目(subject),以及班级数组。一个教师可以教多个班级,可以给教师增加班级。 给教师的原型对象增加一个方法,判断是否教过某个学生。
时间: 2024-05-14 22:13:46 浏览: 15
好的,让我来为您解答这道编程问题。下面是您要求的代码:
```
// 定义Person类
class Person {
constructor(name,age,gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
}
// 定义Teacher类并继承Person类
class Teacher extends Person {
constructor(name,age,gender,subject) {
super(name,age,gender);
this.subject = subject;
this.classes = [];
}
// 增加班级
addClass(className) {
this.classes.push(className);
}
// 判断是否教过该学生
hasTaught(studentName) {
for(let i = 0; i < this.classes.length; i++) {
let classObj = this.classes[i];
if(classObj.students.includes(studentName)) {
return true;
}
}
return false;
}
}
// 示例用法
let teacher = new Teacher("张老师",30,"女","数学");
teacher.addClass({name:"一年级二班", students:["小明","小红","小张"]});
teacher.addClass({name:"二年级一班", students:["李华","王小二","张琦"]});
let hasTaught = teacher.hasTaught("小张"); // true
console.log(hasTaught);
hasTaught = teacher.hasTaught("赵丽颖"); // false
console.log(hasTaught);
```
对于您提出的问题,我已经在代码中进行了实现。Teacher类继承自Person类,并且新增了属性subject和classes,其中classes是班级数组。Teacher的原型对象中增加了方法addClass和hasTaught,能够新增班级以及判断是否教过某个学生。为了达到您的要求,我使用了面向对象编程的思想,通过类的继承和方法的添加来实现。
希望以上代码能够帮助到您,有什么疑问可以随时向我提问。