JavaScript-Objekt zerstören
-
Verwenden Sie den
delete
-Operator, um Objekte in JavaScript zu zerstören -
Verwenden Sie die
destroy
-Methode und übergeben Sie Objektinstanzen in JavaScript -
Setzen Sie die Objektvariablenreferenz mit JavaScript auf
null
Die JavaScript-Methode destroy
hat keinen Zugriff auf die Objektinstanzen. In unseren Beispielen sehen wir zwei Möglichkeiten, den Fall zu lösen.
In einem Fall führen wir den Operator delete
ein und im nächsten versuchen wir, das Objekt und seine Instanz zu übergeben. Daher werden wir untersuchen, wie unser Objekt und seine Instanz auf undefiniert
gesetzt werden.
Verwenden Sie den delete
-Operator, um Objekte in JavaScript zu zerstören
Ein Objekt besteht aus mehreren Eigenschaften als Schlüssel-Wert-Paar. Da in JavaScript keine Funktionalität eingeführt wird, die ein Objekt direkt verschwinden lässt, müssen wir die Eigenschaften und die entsprechenden Werte aus der Referenz entfernen.
Entfernen Sie in diesem Fall also die Eigenschaft name
. Sehen wir uns die Auswirkungen der Verwendung des Operators Löschen
an.
Code-Auszug:
const Employee = {
name: 'xyz',
id: 1
};
console.log(Employee.name);
delete Employee.name;
console.log(Employee.name);
Ausgang:
Es kann visualisiert werden, dass der spätere Employee.name
als undefined
wertet. Das Objekt besteht weiterhin aus der Eigenschaft id
.
Wenn wir diese Eigenschaft entfernen, ist das Objekt logisch leer. Das Objekt wird jedoch nicht aus dem Speicher entfernt.
Dennoch besitzt das Objekt keine Eigenschaft der Vergangenheit.
Verwenden Sie die destroy
-Methode und übergeben Sie Objektinstanzen in JavaScript
Wir werden einen Klassenkonstruktor initiieren, der die Methode destroy
definiert. Die Funktion Zerstören
übernimmt dabei das zu bedienende Objekt und seine konkreten Instanzen.
Später werden wir eine Instanz für die Objekteigenschaft instanziieren, und diese neue Instanz wird so betrieben, dass sie null ist oder verschwindet.
Code-Auszug:
// Class constructor
var Class = function() {
this.destroy = function(baseObject, refName) {
delete baseObject[refName];
};
};
// instanciate
var store = {'name': 'abc', 'id': 2};
console.log(store.id);
store.id = new Class();
console.log(store.id);
store.id.destroy(store, 'id');
console.log(store.id);
Ausgang:
Obwohl die store.id
noch eine new Class()
-Initiierung hat, startete die Löschoperation nicht, bevor die Parameter (Objekt, Instanz) in der destroy
-Methode übergeben wurden. Auf diese Weise kann ein Objekt dazu neigen, null zu sein.
Setzen Sie die Objektvariablenreferenz mit JavaScript auf null
Wenn eine Variable auf ein Objekt zeigt und es auf null
setzt, haben Sie keinen Zugriff auf das Objekt. Daher löscht der JavaScript-Garbage Collector das Objekt.
Die Variable userName
zeigt im folgenden Codebeispiel auf ein Objekt. Wir können nun über die Variable userName
auf das Objekt zugreifen.
Wenn wir jedoch die Variable userName
auf null
setzen, haben Sie keinen Zugriff mehr auf das Objekt. Dadurch wird das Objekt gelöscht und der Speicher freigegeben.
Code:
let userName = {id: 1, position: 2} console.log('Before deletion: ', userName);
// Set the object reference to null
userName = null;
// Check if we can reach the object
console.log('After deletion: ', userName);
Ausgang:
Before deletion: Object { id: 1, position: 2 }
After deletion: null