从for循环中的类运行方法

时间:2017-03-29 01:16:33

标签: javascript class for-loop typescript methods

我是新手,所以我很抱歉TypeScript和JavaScript之间的混淆。我想当前正在用TypeScript编写。我试图通过代码末尾的for循环在我的类中运行该方法。我有来自Mozilla Developer Network的基本结构,所以我不确定这是否正确,但我可以告诉它。无论哪种方式,就像我说我想通过下面的循环运行我的方法。我相信我需要使用点符号,但我找不到错误。任何帮助将不胜感激。谢谢。

打字稿/ JavaScript的

class Employee {
    name:string;
    age:number;
    timeInJob:number;
    stillEmployed:boolean;
  constructor(name:string, age:number, timeInJob:number, stillEmployed:boolean){
    this.name = name;
    this.age = age;
    this.timeInJob = timeInJob;
    this.stillEmployed = stillEmployed;
  }
  get extraVacay(){
    return this.vacay();
  }
  vacay(){
    return this.age + this.timeInJob;
  }
};

let myEmployees = [];

let justin = new Employee('Justin', 25, 3, true);
myEmployees.push(justin);
let derek = new Employee('Derek', 22, 8, true);
myEmployees.push(derek);
let taylor = new Employee('Taylor', 24, 9, true);
myEmployees.push(taylor);
let eli = new Employee('Eli', 29, 10, false);
myEmployees.push(eli);
let tyler = new Employee('Tyler', 25, 7, false);
myEmployees.push(tyler);

console.log(myEmployees);
console.log(justin.extraVacay);

for (i = 0; i < myEmployees.length; i++){
  let magicNumber = Employee.extraVacay();
  console.log(magicNumber);
}

1 个答案:

答案 0 :(得分:1)

您有两个问题:

  1. 您无法正确访问阵列中的员工。
  2. 您没有正确调用属性getter:
  3. 试试这个:

    for (i = 0; i < myEmployees.length; i++){
      const employee = myEmployees[i];
      let magicNumber = employee.extraVacay;
      console.log(magicNumber);
    }