为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 JavaScript 中创建一个包含其他类集合的类

如何在 JavaScript 中创建一个包含其他类集合的类

倚天杖 2022-07-21 10:24:44
我想创建一个名为 SchoolCatalog 的类,它将包含学校的集合,例如为小学、初中和高中创建一个 SchoolCatalog 实例。(这是 Code Academy Introduction To JavaScript 中的问题之一)。但是,对于如何制作目录来容纳论坛中的所有课程,他们没有适当的指导。因此,如果有人可以帮助我,我将不胜感激。class School {  constructor(name, level, numberOfStudents) {    this._name = name    this._level = level    this._numberOfStudents = numberOfStudents   }    get name() {    return this._name  }    get level() {    return this._level  }    get numberOfStudents() {    return this._numberOfStudents   }      set numberOfStudents(studentsNumber) {    if (typeof studentNumber === 'number')      this._numberOfStudents = studentsNumber    else      console.log(`Invalid input: numberOfStudents must be set to a Number.`)  }    quickFacts() {    console.log(`${this._name} educates ${this._numberOfStudents} students at the ${this._level} school level.`)  }    static pickSubstituteTeacher(substituteTeachers) {    const randomTeacher = Math.floor(Math.random() * substituteTeachers.length)    console.log(substituteTeachers[randomTeacher])  }  }// Primary Schoolclass PrimarySchool extends School {  constructor(name, numberOfStudents, pickupPolicy) {    super(name, 'primary', numberOfStudents)    this._pickupPolicy = pickupPolicy  }    get pickupPolicy() {    return this._pickupPolicy  }}class HighSchool extends School {  constructor(name, numberOfStudents, sportsTeams) {    super(name,'high', numberOfStudents)    this._sportsTeams = sportsTeams  }    get sportsTeams() {    this._sportsTeams.forEach(team => {      console.log(team)    })  }}
查看完整描述

1 回答

?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

您的实施有问题吗?


class Catalog{

   constructor(){

     this.schools = []

   }

   addSchool(school){

     if(!this[school._name]){

       // reference for easy access

       this[school._name]=school;

     }

     this.schools.push(school);

   }

}

如果我需要一个列表,我可以遍历并且仍然可以轻松地从中获得单所学校,这就是我会做的,


也就是说,根据您的要求,这可能是完全错误的。


乍一看,您的实现看起来并不正确,是不是给您带来了错误?


查看完整回答
反对 回复 2022-07-21
  • 1 回答
  • 0 关注
  • 77 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信