JavaScript '클래스'및 상속에 John Resig's recipe을 사용하고 있습니다. 이 질문에 대한이 같은 다시 내 코드를 제거했습니다개체 내에서 JavaScript 개체를 명시 적으로 해제하려면 어떻게해야합니까?
MyClass = Class.extend({
// create an <h3>Hello world!</h3> in the HTML document
init : function (divId) {
this._divId = divId;
this._textDiv = document.createElement("h3");
this._textDiv.innerHTML = "Hello world!";
document.getElementById(divId).appendChild(this._textDiv);
},
// remove the <h3> and delete this object
remove : function() {
var container = document.getElementById(this._divId);
container.parentNode.removeChild(container);
// can I put some code here to release this object?
}
});
모두 잘 작동 :
var widget = new MyClass("theDivId");
...
widget.remove();
내가 페이지에서 이러한 것들을 수백을 가지고 갈거야 (분명히 일부 합리적인 기능) 및 각 개체에 대한 메모리를 해제하는 간단한 방법을 싶습니다. 내가 widget = null;
을 사용할 수 있고 GC가 필요한 경우 (?) 개체를 놓을 수 있다고 믿지만 remove()
메서드에서 명시 적으로 할 수 있습니까? 내가 remove()
의 끝에서 this = null;
을 배치하는 것은 작동하지 않는 것을 알고)
JS 객체를 삭제할 필요가없는 경우가 종종 있지만 더 이상 필요하지 않을 때 DOM 참조를 null로 만드는 것이 좋습니다. (IE6에서는 이것이 필수입니다.) – c69
확인. null에 대한 DOM 참조를 설정하는 몇 줄을 추가했습니다. 팁 고마워 :) – wpearse