這個問題在這里已經有了答案: 為什么 ES6 類沒有被提升? (4 個回答) 2 小時前關閉。
我正在學習static在我的應用程式中使用的方法和欄位。
我撰寫了以下代碼來測驗我學到了什么:
class ClassWithStatic {
static childclass = new SubClass("Hello");
static writeIn() {
console.log("Hello world!");
}
}
class SubClass {
constructor(text) {
console.log(text);
}
}
ClassWithStatic.writeIn();
但是,此代碼回傳錯誤;Uncaught ReferenceError: Cannot access 'SubClass' before initialization. 當我在瀏覽器中搜索這個關鍵字時,我發現錯誤是因為Hoisting is not working發生的。
如何在不更改課程順序的情況下解決此問題?
uj5u.com熱心網友回復:
好吧,實際上,類被提升了,但它的值不會自動初始化(類必須在構造之前定義)。
這基本上是類和函式之間的主要區別,因為函式將被提升和初始化(因此您在以代碼方式定義它們之前呼叫它們),但必須在構造它們之前定義類。所以恐怕你必須推動上面的 Class 宣告。
在此處查看更多資訊。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/521493.html
上一篇:在Python中查找和替換字符
下一篇:有條件地定義類的方法
