Wie zu zerstören, ein Objekt in javascript?
Frage ich mich, wie Sie richtig zu zerstören, ein Objekt in Javascript, die ein array enthält unter anderen Daten.
Zum Beispiel (dies ist der Anfangszustand des Objekts):
acme.models.nomination = {
recipients : [], //array will be added to later.
awardType: {}, //this object will be filled out later.
privacy: 'private',
...
};
Wie die Anwendung verwendet wird, die Nominierung.Empfänger-Objekt Hinzugefügt werden, zusammen mit den anderen Daten-Elemente. Ist es genug, um das folgende tun, um deaktivieren Sie das komplette Objekt, wenn Sie fertig mit ihm:
acme.models.nomination = {};
oder ist das besser (oder overkill):
acme.models.nomination.privacy = undefined;
acme.models.nomination.awardType = {};
acme.models.nomination.recipients = {};
acme.models.nomination = {};
Ich denke, dass die frühere Aussage (d.h. acme.models.nomination = {}
) ist genug, wie diese effektiv lässt sich der gesamte Inhalt nicht erreichbar-und damit für die garbage collection freigegeben. Allerdings würde ich mag, um andere Völker Meinungen auf diesem. BTW, die Antwort gegeben werden kann in einem modernen browser-Kontext, sagen wir Browser post-Jan-2012, als ich weiß, Speicher-management wurde ein wenig inkonsistent in der Vergangenheit.
InformationsquelleAutor Philip Murphy | 2012-07-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, die löschen-Betreiber ist das, was du suchst:
Betrachten Sie den folgenden Codeausschnitt: ` var x = {}; x.y = { a: 1, b: function() {} }; delete x.y; // x.y ist undefiniert jetzt " Das bedeutet, dass die Eigenschaften a und b sind für die garbage collection freigegeben => alles gute. Was ist, wenn es gab eine Reihe von Elementen in x.y. Betrachten Sie den folgenden Codeausschnitt: ` var x = {}; x.y = { a: 1, b: function() {}, c: [1, 2, 3, 4, 5] }; löschen x.y; // x.y ist undefiniert, jetzt löschen wir die parent-Eigenschaft alle Kinder sind für die garbage collection freigegeben, wie alle Kinder nicht erreichbar sind. Würden Sie dem Zustimmen? Dank
Check out this one: perfectionkills.com/understanding-delete/#comment-57399 - dieser Artikel ist zitiert unten: developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/... - klingt wie wir sein sollen, mit null statt.
InformationsquelleAutor micha149