javascript 삭제 예
var flower={}; flower.name="oop"; delete flower.name; //true alert(flower.name); //undefined
flower라는 개체 만들기
flower에 멤버 이름, 값 "앗"이 있습니다.
삭제 작업으로 이 멤버가 삭제됩니다.
삭제에 성공했으며 더 이상 존재하지 않습니다. flower.name
javascript 삭제 예 2
alert(isNaN(5)); //false delete isNaN; //true alert(isNaN(5)); //undefined
삭제 연산자는 전역 개체 Global의 멤버도 삭제할 수 있습니다.
var로 선언된 변수는 삭제할 수 없습니다.
var flower="monkey"; delete flower; //false alert(flower); // "monkey"
var로 선언된 변수, 삭제 후 false를 반환합니다.
참고: 삭제는 삭제할 수 없는 멤버를 삭제할 때만 false를 반환합니다.
즉, 호스트 개체 아래의 변수는 삭제할 수 없습니다. 즉 브라우저 아래
window.flower="monkey"; delete flower; //抛出异常 alert(flower);
ff 브라우저 아래
window.flower="monkey"; delete flower; //true alert(flower) //undefined
삭제 창의 멤버를 보면 브라우저가 일관되지 않게 동작합니다
창은 자바스크립트의 호스트 개체입니다
호스트 객체는 자바스크립트 실행 환경이 자체적으로 정의되어 있습니다
IE6-8 브라우저에서는 window.flower를 삭제할 수 없습니다. 브라우저에서는 "해당 객체가 이 작업을 지원하지 않습니다"라는 메시지가 표시됩니다.
함수를 사용하여 삭제할 수 없습니다.
function flower(){} delete flower; //true alert(flower);//undefined
라는 이름으로 선언된 함수는 삭제가 불가능합니다. 함수 이름으로 선언된 함수는 삭제할 수 없습니다.
상속된 멤버는 삭제할 수 없습니다. 프로토타입에서
function flower(){}; flower.prototype.name="monkey"; var a1=new flower(); a1.name="a1_monkey" alert(a1.name);//"a1_monkey" delete a1.name;//ture alert(a1.name);//"monkey"
A1은 flower의 인스턴스이고 프로토타입은 인스턴스를 통해 삭제되며 상위 클래스의 멤버는 불가능합니다~
이 속성을 삭제해야 하는 경우("here, take name 예를 들어") 프로토타입만 조작할 수 있습니다.
delete a1.constructor.prototype.name;
DontDelete 속성 삭제는 DontDelete 속성이 있는 멤버를 삭제할 수 없습니다.
그럼 DontDelete 속성이 있는 멤버는 무엇인가요?
예를 들어 var로 선언된 변수, 함수 이름으로 선언된 함수, Function 객체의 길이 등은 DontDelete 속성을 갖는 경우가 거의 없습니다.
delete 반환 값 false 또는 true
delete는 false만 반환합니다. 삭제할 수 없는 멤버 삭제 시
그 외 존재하지 않는 멤버를 삭제하거나 삭제에 성공해도 true를 반환합니다
즉, true를 반환한다고 해서 반드시 삭제가 성공한 것은 아닙니다
예: 코드 실행 경고(삭제 a); // true
a는 선언되지 않은 존재하지 않는 변수입니다. delete는 여전히 true를 반환합니다.
다른 브라우저 간의 차이점
(function(){ delete arguments; // false ,而在Mozilla中返回的是true typeof arguments; // "object" })();
영리하게 eval을 사용하여 var가 선언한 변수를 삭제합니다.
eval('var flower = 1'); alert(window.flower) //1 alert(flower)// 1 delete flower; // true alert(flower); // "undefined" var a=function(){}; eval('var a = function(){}'); delete a; // true alert(a); // "undefined"
eval 이후 전역 변수를 사용할 수 없게 됩니다. DontDelete 기능, eval을 사용하여 다음을 수행할 수 있습니다. delete;
드디어 마법 같은 기능을 추가했습니다 ~ 잠자리에 들기 전에 테스트했습니다
window.flower=1
꽃을 삭제할 때 개체는 이 작업을 지원하지 않습니다
(window)와 함께 사용할 수 있습니다. flower=1}; 그런 다음 꽃을 삭제합니다(window.flower를 삭제하는 것이 아니라 flower를 삭제한다는 점을 기억하세요. IE에서는 이를 허용하지 않습니다)
이렇게 하면 window.flower가 삭제됩니다.)
더 보기 여러 자바스크립트 삭제 사용법 샘플 코드와 관련된 기사는 PHP 중국어 웹사이트를 주목하세요!