我有一個將攜帶(Model.validator)驗證程序實例的模型,並且我需要驗證程序才能訪問模型的屬性。所以,我想到的是以下內容對象之間的循環引用是一種不好的做法嗎?
var Validator = function(model) {
this.model = model;
};
var Model = function() {
this._attributes = {};
this.validator = new Validator(this);
};
var model = new Model();
此代碼在這兩個對象之間創建一個循環引用。這是否會導致內存泄漏?有關如何實現它的任何其他想法?
P.S.我在Angular.js範圍內的對象之間看到過這樣的循環引用。
@ArunPJohny這是沒有問題的:在IE6也許......但現代的JS引擎是完全能夠處理gc循環。 – georg 2013-05-02 09:30:20
@ArunPJohny:即使在IE6中,如果它們是普通的JS對象並且不包含DOM – Bergi 2013-05-02 09:34:20
請注意,循環引用在序列化時會引起問題(例如,通過「JSON.stringify()」) – Uriel 2017-09-17 15:32:22