静态方法中的访问构造函数var(es6)

时间:2016-01-14 01:52:54

标签: javascript ecmascript-6

遇到我有以下代码的情况:

newName()

当我访问name时,在我的console.log中,我无法获得我理解的newName()变量的引用,当我调用该类时,该类未被实例化静态方法。所以我想我的问题是,对我来说,调用name和访问let name="john doe"变量的最佳方式是什么?我可以在类{{1}}之上创建一个变量并以这种方式访问​​它,但是我想找到一种方法来保持课堂上的所有内容。

1 个答案:

答案 0 :(得分:2)

首先,让我们暂时忘记static。所以,你的课应该是这样的:

class SomeClass {
  constructor() {
    this.name = "john doe";
  }

  newName() {
    return this.name;
  }
}

查看变量name?如果您使用let(或varconst)声明它,则会在constructor中将其定义为本地变量。因此,它只能在constructor方法中使用。现在,如果使用关键字this设置它,它将被定义为实例变量,因此,它可以在整个类中访问。

现在让我们看看你如何实例化你的类并调用方法newName

let someClass = new SomeClass(),
    name      = someClass.newName();

如果你真的想使用静态方法,请记住,在其中发生的所有事情都不会附加到对象的实例。

您可以阅读有关es6课程here的更多信息。