[英]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.