[英]access constructor var in static method (es6)
遇到我有以下代码的情况:
class SomeClass{
constructor(){
let name="john doe"
}
static newName(){
//i want to get the "name" variable here
}
}
在我的console.log中,当我访问newName()
,我无法获得我理解的name
变量的引用,当我调用静态方法时,类没有被实例化。 所以我想我的问题是,对于我来说调用newName()
和访问name
变量的最佳方法是什么? 我可以在类上面创建一个变量let name="john doe"
并以这种方式访问它,但是我想找到一种方法来保持类中的所有内容。
首先,让我们暂时忘掉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课程的更多信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.