javascript - 类声明问题

标签 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();

问题是,在类的语句 block 的第一行,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等变量。

关于javascript - 类声明问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49290194/

相关文章:

javascript - react Hook : set component state without re-rendering twice

javascript - ExtJS 抓取 JSON 结果

javascript - 从 ag grid angular 中取消选择选定的行

javascript - 如何在 Javascript 中调用同一个类中的另一个方法

javascript - 如何构建更好的 React 列表容器组件?

javascript - 使用没有临时变量的嵌套 forEach 循环时,如何从主函数返回值?

javascript - 扩展常规对象以支持 ES5 数组功能的问题

javascript - 为什么在 nodejs 的 for 循环中 let 比 var 慢?

javascript - 人们更喜欢使用 React 组件的构造函数而不是 componentWillMount 有什么原因吗?

javascript - 在 Nuxt 中使用 ES6 类作为 vuex 存储状态