나는 그것을 가진 (Model.validator) validator 인스턴스를 "운반"할 모델이 있으며, 나는 모델의 속성에 접근하기 위해 Validator가 필요하다. 그래서, 나는 다음과 같은개체 간의 순환 참조가 나쁜 습관입니까?
var Validator = function(model) {
this.model = model;
};
var Model = function() {
this._attributes = {};
this.validator = new Validator(this);
};
var model = new Model();
이 코드는 그 두 개체 사이의 순환 참조가 생성하는 것입니다 함께 올라와있다. 메모리 누수의 원인이 될 수있는 나쁜 습관입니까? 그것을 구현하는 방법에 대한 다른 아이디어?
P. Angular.js 범위의 객체간에 순환 참조를 보았습니다.
@ArunPJohny :-) 자신을 망치지 않는 한 아무 문제 없습니다 : IE6에서 어쩌면 ...하지만 현대 JS 엔진은 완벽하게 GC주기를 처리 할 수 있습니다. – georg
@ArunPJohny : 일반 JS 객체이고 DOM을 포함하지 않는 경우 IE6에서도 예외입니다. – Bergi
순환 참조는 직렬화 (예 : JSON.stringify()를 통해)시 – Uriel