首页 > 解决方案 > 如何解决这个(不是函数)错误?

问题描述

这是一段与 JavaScript 项目相关的代码片段。我已经在我的类中声明了这个函数。但是当我使用参数调用函数时(我将元素数组作为参数传递),它返回 Uncaught TypeError: School.pickSubstituteTeacher is not a function。


class School {

  pickSubstituteTeacher(substituteTeachers){
  let randomTeacher = Math.floor(  Math.random() * substituteTeachers.length);
   return substituteTeachers[randomTeacher];
   }
}
School.pickSubstituteTeacher(['Dave', 'John', 'Henry']);

我希望输出是从这个包含三个元素的数组中选择的随机教师。

标签: javascript

解决方案


您需要创建一个实例,然后对其应用方法。

class School {
  pickSubstituteTeacher(substituteTeachers){
     let randomTeacher = Math.floor(  Math.random() * substituteTeachers.length);
     return substituteTeachers[randomTeacher];
  }
}
const instance = new School()

console.log(instance.pickSubstituteTeacher(['Dave', 'John', 'Henry']));

或者,如果您想要一个静态方法(将在类上而不是类的实例上的方法),那么在方法之前使用 static。

class School {

  static pickSubstituteTeacher(substituteTeachers){
      let randomTeacher = Math.floor(  Math.random() * substituteTeachers.length);
      return substituteTeachers[randomTeacher];
   }
}
console.log(School.pickSubstituteTeacher(['Dave', 'John', 'Henry']));


推荐阅读