Ich lese this Post, mit delete
Schlüsselwort, können wir JavaScript-Variable zu löschen. Aber wenn ich die gleichen Operationen mit Konstante versuchte, aber es wird falsch zurückgegeben, wenn ich versuche, konstant zu löschen. Gibt es eine Möglichkeit, Konstanten aus dem Speicher zu löschen? Ich versuchte this Antwort, aber es funktioniert auch nicht.Wie lösche ich eine Javascript-Konstante in ES6?
Antwort
Sie können nicht direkt tun es, auf die Spezifikationen schauen uns zeigen, dass der Wert kann zwar eingestellt, aber nicht überschrieben werden (so ist der standard definition of a constant), jedoch gibt es ein paar etwas hacky Möglichkeiten, konstante Werte zu schärfen.
Anwendungsbereich Mit
const
ist scoped. Durch die Definition der Konstante in einem Block existiert sie nur für diesen Block.
ein Objekt Schärfen und Entschärfen Tasten
Durch const obj = { /* keys */ }
definieren definieren wir einen Wert obj
, die konstant ist, aber wir können immer noch die Schlüssel wie jede andere Variable behandeln, wie durch the examples im MDN Artikel demonstriert. Man könnte einen Schlüssel aufheben, indem man ihn auf null setzt.
Wenn es memory management ist, dann sind diese beiden Techniken hilfreich.
Der Operator delete
ist eigentlich zum Löschen einer Objekteigenschaft, keine Variable. In der Tat, im strikten Modus, delete foo
is a syntax error.
Normalerweise können Sie einen Wert/ein Objekt löschen, indem Sie alle Verweise darauf entfernen, z. Zuweisen einer null
zu einer Variablen.
Da Konstanten jedoch nicht beschreibbar sind (per Definition), gibt es keine Möglichkeit, dies zu tun.
Wie ich in meinen Kommentar geschrieben habe, kann delete nur für Objekte und Arrays verwendet werden. Also, was Sie tatsächlich tun, ist alle Ihre Konstanten in einem konstanten Objekt und bis freien Speicher durch Löschen es Eigenschaften, wie folgt aus:
const myConstants = {};
myConstants.height = 100;
delete myConstants.height;
- 1. Wie lösche ich eine Zeichenfolge?
- 2. Wie lösche ich eine Prozessbefehlszeile?
- 3. Wie lösche ich eine Flaschensitzung?
- 4. Wie erstelle ich eine Hauptimportdatei in ES6?
- 5. Wie lösche ich eine JList in Java?
- 6. Wie lösche ich eine Datei in sailsjs?
- 7. Wie lösche ich eine Tabelle in SQLAlchemy?
- 8. Wie lösche ich eine Sammlung in MongoDB?
- 9. Wie lösche ich eine bestimmte Zeile?
- 10. Wie lösche ich eine schreibgeschützte Datei?
- 11. Wie lösche ich eine Datei mit VB.NET?
- 12. Wie lösche ich eine persistente Abfragezeichenfolge
- 13. Wie lösche ich eine Log-Datei programmatisch?
- 14. Wie lösche ich eine Datenbank aus Firebase?
- 15. Wie lösche ich eine Bash-Funktion?
- 16. Wie lösche ich eine Parkettdatei auf Spark?
- 17. Wie lösche ich eine TStringGrid-Zeile?
- 18. Wie lösche ich eine PHP-Sitzung?
- 19. Wie lösche ich JTextArea?
- 20. Wie lösche ich im Batch mit DynamoDB?
- 21. Wie lösche ich das Textfeld in formsy Material ui React
- 22. Wie konvertiere ich diese ES6-Klasse in eine Factory-Funktion?
- 23. Wie lösche ich eine Disziplin in EPF Composer 1.5?
- 24. Wie lösche ich eine gespeicherte Prozedur in Postgresql?
- 25. Wie lösche ich eine Zeile in SQL mit PHP?
- 26. Wie lösche ich zuerst eine Tabelle in Entity Framework Code?
- 27. Wie lösche ich eine Variable aus dem Scope in angular.js
- 28. Wie lösche ich eine Zeile in einem Abschnitt?
- 29. Wie lösche ich eine Sammlung in forerunnerdb dauerhaft?
- 30. Wie lösche ich eine verwaiste Referenz in MongoDB?
Was bedeutet, dass Sie diese Antwort versucht haben? das ist - was genau hast du probiert? –
Konstanten sind Konstanten. Wenn Sie Ihre eigenen Links lesen, werden Sie sehen, dass Konstanten keine Variablen sind. Daher können Sie keine Konstanten neu definieren/löschen. –
@AdrianPreuss, Gibt es eine Möglichkeit, den von Konstanten verwendeten Speicher freizugeben? –