所以我一直在自学新的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
机构不得包含var
或let
声明。
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
等变量。