繁体   English   中英

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

[英]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 (或varconst )声明它,它将在constructor定义为局部变量。 因此,它只能在constructor方法中使用。 现在,如果使用关键字this设置它,它将被定义为实例变量,因此,可以在整个类中访问它。

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

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

如果您确实想要使用静态方法,请记住,其中发生的所有内容都不会附加到对象的实例。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM