所以我一直在教自己新的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给出了一个错误,说明了意外的令牌'。
我宣布这个的方式有问题吗?这似乎是一个非常容易解决的问题,但我缺少什么?
答案 0 :(得分:2)
我认为您希望拥有在构造函数中初始化的实例属性。 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
等变量。