类声明问题

时间:2018-03-15 01:31:36

标签: javascript ecmascript-6 es6-class

所以我一直在教自己新的ES6语法,我把一个小例子放在一起练习新功能。现在我从这段代码中得到了一个非常奇怪的错误:

class bird { 
  var actions = ["run","jump","fly", "chirp"]; 
  let actionValue = 11;
  preformActions(){
    actions.map((action) => {
      console.log(action);  
    });
  }
}
let birdy = new bird();
birdy.preformActions();

问题在于,在类的第一行语句块中,jslint给出了一个错误,说明了意外的令牌'。

我宣布这个的方式有问题吗?这似乎是一个非常容易解决的问题,但我缺少什么?

1 个答案:

答案 0 :(得分:2)

我认为您希望拥有在构造函数中初始化的实例属性。 class正文不得包含varlet声明。

class Bird { 
  constructor() {
    this.actions = ["run","jump","fly", "chirp"]; 
    this.actionValue = 11;
  }
  performActions(){
    for (const action of this.actions)
      console.log(action);
  }
}
let birdy = new Bird();
birdy.performActions();

当然,内部这些方法可以包含本地let / const / var等变量。