簡體   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