사용자 요청시 자체의 새 인스턴스를 만드는 개체가 있습니다. 내 질문은 어떻게 구성하고 대부분 인스턴스를 올바르게 제거하는 방법에 관한 것입니다.자체 변이하는 개체의 인스턴스를 제거합니다.
(function (something) {
var collection = {},
counter = -1;
function remove(ix) {
delete collection[ix];
}
function Foo() {
collection[++counter] = this;
this.index = counter;
this.load();
}
Foo.prototype.load = function() {
/* - Create some element and add it to DOM.
* - Add listeners for events.
* - If "New" is clicked call this.add()
* - If "Remove" is clicked call this.remove()
* */
};
Foo.prototype.add = function() {
var x = new Foo();
};
Foo.prototype.remove = function() {
/* - Remove listeners.
* - Remove element from DOM.
* */
remove(this.index);
};
something.Foo = Foo;
})(this);
var bar = new Foo();
가 "생성 자체"인가 제대로이 방법으로 제거 할 것 경우 :
는 기본적으로이 같은 것입니다? (GB 에서처럼 언젠가는 미래에 수집했습니다.) 더 좋은 방법이 있나요?
내가 말할 수 다음 remove()
함수 내에서
delete collection[ix];
? 또는 remove()
으로 전화 할 때 setTimeout()
을 사용해야합니까? 아니면 ... 다른 것들?
'collection'에서 삭제하고 다른 코드에서 제거 된 객체 중 하나가 없다면 가비지 컬렉터가이를 정리합니다. 'delete collection [ix];'는 컬렉션에 아이템을 추가 할 때 원래 생성자에서 사용했던 키인'ix'가있는 한'collection'에서 아이템을 제거하는데 문제가 없습니다. – jfriend00
+1이 하나에 대한 자세한 대답을보고 싶습니다. –