시도했지만 delete
가 작동하지 않습니다.자바 스크립트로 전체 개체를 삭제하는 방법은 무엇입니까?
var x = {"y":42,"z":{"a":1,"b":[1,2,3]}};
alert(x.y);
delete x;
alert(x.y); // still shows '42'
전체 개체 크로스 브라우저를 삭제하는 방법은 무엇입니까?
편집 : x = null
도
시도했지만 delete
가 작동하지 않습니다.자바 스크립트로 전체 개체를 삭제하는 방법은 무엇입니까?
var x = {"y":42,"z":{"a":1,"b":[1,2,3]}};
alert(x.y);
delete x;
alert(x.y); // still shows '42'
전체 개체 크로스 브라우저를 삭제하는 방법은 무엇입니까?
편집 : x = null
도
삭제 연산자 만 사용하여 암시 적으로 선언 된 변수는 삭제할 수 있지만 var로 선언 된 변수는 삭제할 수 없습니다. x = null 또는 x = undefined로 설정할 수 있습니다.
당신은 변수 또는 함수를 삭제할 수 없습니다 작동하지 않습니다. 객체의 속성 만. 값을 지우려면
x = null;
을 할당하면됩니다.
UPDATE : 설명에 대한 기능 : 당신이 윈도우 속성으로 전역 함수를 선언하는 경우
>> function f1() {console.log("aa");}
>> f1();
aa
>> delete f1;
false
>> f1();
aa
을하지만, 당신이 그것을 삭제할 수 있습니다
>> f1 = f1() {console.log("aa");}
>> delete window.f1;
true
을 같은 변수입니다 :
>> a = "x";
>> console.log(a);
x
>> delete window.a;
true
>> console.log(a);
ReferenceError: a is not defined
but :
>> var a = "x";
>> console.log(a);
x
>> delete a;
false
>> console.log(a);
x
자바의 전역 네임 스페이스에서 개체를 삭제할 수 없습니다.
개체는 x
안에 있지만, x
개체는 없습니다.
Chrome 콘솔에서 'window.func1 = function() {}','delete window.func1'을 할 수 있습니다. 나는 또한'func2 = function() {}'다음에 삭제를 할 수있다. 그러나, 나는'function func3() {}'을 할 수 없다. delete on을 호출하면 false가 반환되고 함수는 남아 있습니다. – Matt
JavaScript에서 객체를 삭제하지 않아도됩니다. 객체에 대한 모든 참조가 제거 된 후 해당 객체는 가비지 수집됩니다. 참조를 제거하려면 사용
x = null;
이 x = null;
또는 x = undefined;
보십시오.
브라우저가 작동하지 않는다는 것을 언급하는 것이 좋습니다 ... – ThiefMaster
x = null이 작동하지 않는다는 것을 의미합니까? x.y에 액세스하는 것을 언급하는 경우 x에 null을 할당 한 후 x.y가 가장 확실하게 실패합니다. 메모리를 회수하는 것을 말하는 경우 x에 할당 된 객체는 가비지 콜렉션에 의해 정리됩니다 (다른 참조가없는 경우). – Matt