2012-05-18 3 views
1

내 웹 응용 프로그램에서 일반 인터페이스를 사용하고 있으며 클래스 용 개체를 만드는 데 필요한 JavaScript 클래스와 메서드가 있습니다. 개체를 사용하지 않을 때 메모리를 지우고 싶습니다. 내 질문은 어떻게 개체의 메모리를 지울 수 있습니다.자바 스크립트의 개체 메모리 지우기

'obj = null;'시도했습니다. 및 '삭제 obj;'. 둘 다 예상대로 작동하지 않습니다.

JavaScript 또는 일반 인터페이스에서 개체 및 개체 메모리를 지우는 방법이 있습니까? -Sridhar

+1

자바 스크립트에 이미 메모리의 사용되지 않는 참조를 지우는 가비지 수집기가 있습니다. – fcalderan

+0

나는 이미 질문을 받았다고 생각합니다. 아래 링크를 확인하십시오. http://stackoverflow.com/questions/5115054/delete-object-from-memory-in-javascript – aravindKrishna

답변

0

당신은 할 수 없습니다. 모든 참조가 실제로 제거되는 한 (예 : null으로 설정 됨) 많은 경우 실행되는 시점과 수집 할 시점까지 전적으로 GC에 달려 있습니다.

1

null로 설정하려고합니다. 메모리 누수가 그것을 관리하는 방법을 작성 DOM, here 관련되어있는 경우

var a = new className(); 
alert(a); 

a = null; 
alert(a); 
1

당신은 Self-Invoking Functions

Self-invoking functions are functions who execute immediately, and create their own closure. Take a look at this: 

(function() { 
    var dog = "German Shepherd"; 
    alert(dog); 
})(); 
alert(dog); // Returns undefined 

so the dog variable was only available within that context 

편집
를 사용할 수 있습니다. 그래서 저는 이렇게 풀려고했습니다 :

var obj = {};//your big js object 
//do something with it 

function clear() { 
    var that = this; 
    for (var i in that) { 
     clear.call(that[i]); 
     that[i] = null; 
    } 
} 

clear.call(obj);//clear it's all properties 
obj = null; 
+0

나는이 점을 잘 알고 있습니다. 그러나 나는 기억을 분명히 해방하고 싶다. 이후로 내 개체가 전역 적으로 사용되며 이러한 개체가 더 이상 필요없는 경우 메모리를 지워야합니다. –