Ho un modello che "porterà" (Model.validator) un'istanza di validatore con esso, e ho bisogno che il validatore abbia accesso agli attributi del modello. Quindi, quello che ho trovato è il seguenteIl riferimento circolare tra gli oggetti è una cattiva pratica?
var Validator = function(model) {
this.model = model;
};
var Model = function() {
this._attributes = {};
this.validator = new Validator(this);
};
var model = new Model();
Questo codice crea un riferimento circolare tra questi 2 oggetti. È una cattiva pratica che causerà perdite di memoria? Qualche altra idea su come implementarla?
P.S. Ho visto riferimenti circolari simili tra oggetti negli ambiti Angular.js.
@ArunPJohny: in IE6 forse ... ma i moderni motori a JS sono perfettamente in grado di gestire i cicli gc. – georg
@ArunPJohny: Nemmeno in IE6, se sono semplici oggetti JS e non includono il DOM – Bergi
Nota che i riferimenti circolari causeranno problemi quando si tratta di serializzazione (tramite 'JSON.stringify()' ad esempio) – Uriel