2011-12-05 5 views
2

Array을 사용하면 키워드를 사용하여 Array에서 항목을 제거 할 수 있음을 알고 있습니다. 그러나 delete은 변수를 삭제하지 않습니다.속성을 "삭제하는"올바른 방법은 무엇입니까?

var b = "some stuff"; 
delete b; 
console.log(b); // "some stuff" 

"무료"메모리가 b에서 사용하는 올바른 방법은 무엇입니까? 그냥 b = null; 일을하는 것이 속임수일까요?

+1

당신이 모른다면 : 함수 범위에서'b'가 선언 되었다면, 전혀 걱정할 필요가 없을 것입니다. 실행이 함수 범위를 벗어나면 다른 참조가 없으면 원하는만큼 자유롭게 사용할 수 있습니다. –

+1

@JamesClark하지만 'b'가 너무 많은 양의 데이터를로드하는 경우가 발생할 수 있으므로 다른 데이터 덩어리를로드하기 전에 해제해야합니다. – puk

답변

1

Javascript에서는 실제로 메모리를 "자유롭게"할 수 없습니다. 객체가 사용하는 메모리에 대한 모든 참조를 제거하면 JS 엔진의 가비지 수집기가이를 복구합니다. 변수/속성을 null로 설정하는 것이 좋습니다.

'삭제'와 관련하여 http://perfectionkills.com/understanding-delete/보다 나은 정보를 찾지 못했습니다.

관련 문제