我们不应该在es6类中预定义变量吗?

时间:2017-05-09 19:33:10

标签: javascript es6-class

为什么这会给我一个错误?问题出在let p = 0;我只想定义变量,然后在构造函数中为int赋值。如果我删除它let p = 0;它有效,但我不理解它,因为我认为this.p应该引用类中的预定义变量,对吧?顺便说一下,我不懂Javascript,我的知识来自Java

class Wizard {

   let p = 0;

  constructor(p) {
      this.p = p;
    // TODO replace this line.
  }
 power ()  {
     return this.p;
 }
}
let Gandalf = new Wizard(100);

1 个答案:

答案 0 :(得分:0)

嗯,JavaScript不是一种开头的OOP语言,或者至少几乎没有Java那么严格。

在这个“软OOP”中,您可以动态地为对象分配属性,而无需在类中声明它。这就是为什么声明属性无关紧要的原因。