遇到我有以下代码的情况:
newName()
当我访问name
时,在我的console.log中,我无法获得我理解的newName()
变量的引用,当我调用该类时,该类未被实例化静态方法。所以我想我的问题是,对我来说,调用name
和访问let name="john doe"
变量的最佳方式是什么?我可以在类{{1}}之上创建一个变量并以这种方式访问它,但是我想找到一种方法来保持课堂上的所有内容。
答案 0 :(得分:2)
首先,让我们暂时忘记static
。所以,你的课应该是这样的:
class SomeClass {
constructor() {
this.name = "john doe";
}
newName() {
return this.name;
}
}
查看变量name
?如果您使用let
(或var
或const
)声明它,则会在constructor
中将其定义为本地变量。因此,它只能在constructor
方法中使用。现在,如果使用关键字this
设置它,它将被定义为实例变量,因此,它可以在整个类中访问。
现在让我们看看你如何实例化你的类并调用方法newName
:
let someClass = new SomeClass(),
name = someClass.newName();
如果你真的想使用静态方法,请记住,在其中发生的所有事情都不会附加到对象的实例。
您可以阅读有关es6课程here的更多信息。