2017-02-11 248 views
7

我們真的可以刪除一個由es6「class」創建的類嗎?我們可以刪除ES6課程嗎?

class myClass{} 
 
delete myClass; 
 
console.log(myClass); //output: class myClass{} 
 
var myClass=0; //Uncaught SyntaxError: Identifier 'myClass' has already been declared

+1

你不能「刪除」** JavaScript中的任何** [除了對象屬性](http://perfectionkills.com/understanding-delete/)。你甚至想要做什麼?你在哪裏找到這個代碼? – Bergi

+1

這個想法是取消定義你創建的類。例如,這可能對調試很有用。 –

+0

所以你可以將它設置爲'undefined',然後'null'進行垃圾收集。 – Leo

回答

1

刪除只會刪除對象屬性或變量,它是全球性的。

+2

刪除第二部分 - 只能刪除全局對象的屬性,而不是全部全局變量。 – Bergi

1

https://stackoverflow.com/a/44694753/461412

這個答案是非常有用的。但並不完美。

我想你永遠不會刪除它後,它被宣佈爲一個標識符,但你可以將它包裝到一個可刪除的變量中。

我還在尋找更好的解決方案。我們的團隊正在嘗試構建一個可拆卸的模塊系統。致命的,任何宣佈的班級都不可拆卸。我們不喜歡將我們加載的每個模塊進行轉譯。

相關問題