Betrachten Sie dieses Zitat von the Mozilla Docs on JavaScript memory leaks:DOM: Warum ist das ein Speicherleck?
function addHandler() { var el = document.getElementById('el'); el.onclick = function() { this.style.backgroundColor = 'red'; } }
Der obige Code setzt das Element rot zu drehen, wenn es angeklickt wird. Es erstellt auch ein Speicherleck. Warum? Weil der Verweis auf el ist versehentlich in der Schließung für die anonyme innere Funktion gefangen gefangen. Dies erzeugt einen zirkulären Verweis zwischen einem JavaScript-Objekt (die Funktion) und einem nativen Objekt (el).
Bitte erklären Sie die oben genannten Ursachen der Leckage in einer einfachen und prägnanten Art und Weise, ich bekomme nicht den genauen Punkt.
Steht die Site/Seite wegen der Leckage vor einem Sicherheitsproblem? Wie vermeide ich sie? Welcher andere Code kann Speicherlecks verursachen? Wie kann ich feststellen, wenn ein Speicherleck aufgetreten ist?
Ich bin ein absoluter Anfänger zum Thema Speicherlecks. Könnte jemand diese Sachen für mich erklären, Schritt für Schritt? Auch kann jemand mir helfen, diese Aussage zu klären "Dies schafft eine zirkuläre Referenz zwischen einem JavaScript-Objekt (die Funktion) und einem nativen Objekt (el)."
http://www.javascriptkit.com/javatutors/closuresleak/, http://www.google.com/search?q=explanation+of+javascript+memory+leaks – CBroe
@GrantKiely seine von MDN –
http: //javascript.crockford.com/memory/leak.html – undefined