类声明问题



所以我一直在自学新的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 给了我一个错误,指出"意外的令牌"。

我声明的方式有问题吗? 这似乎是一个非常容易解决的问题,但我错过了什么?

我认为您需要在构造函数中初始化实例属性。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等变量。

最新更新