JavaScript의 delete연산자 와 약간 혼동됩니다 . 다음 코드를 보자.
var obj = {
helloText: "Hello World!"
};
var foo = obj;
delete obj;
이 코드 조각이 실행 된 후에 obj는 is null이지만 foo여전히 정확히 같은 객체를 참조합니다 obj. 이 객체가 foo지적한 것과 동일한 객체라고 생각 합니다.
쓰기 가 변수뿐만 아니라 메모리에서 가리키는 delete obj객체를 삭제 한다고 기대했기 때문에 이것은 혼란 스럽습니다 .objobj
이 자바 스크립트의 쓰레기 때문에 콜렉터가 나는 물체를 가리키는 다른 변수를 가지고 있지 않은 경우, 그것은 그래서하는 유지 / 해제를 기준으로하고있다인가 것이다 메모리에서 제거?
(제 테스트는 Safari 4에서 수행되었습니다.)
var obj = { helloText: "Hello World!" }; var foo = obj; delete obj;것이 아닙니다. 귀하의 경우 객체 키를 제거하기위한 삭제 사용 객체가 삭제되지 않았는지 확인 obj: 사용법 delete obj.helloText을 확인한 다음 확인foo now foo is an empty object
delete는 자바 스크립트에서 객체를 삭제하는 것이 아닙니다. delete객체 키를 제거하는 데 사용됩니다. 귀하의 경우 var obj = { helloText: "Hello World!" }; var foo = obj; delete obj;에는 객체가 삭제되지 않습니다. 확인 obj. 다음, 실행 delete obj.helloText하면 foo이제 비어 있음을 알 수 있습니다 "" "