>  기사  >  웹 프론트엔드  >  JavaScript_javascript 스킬의 객체 속성 삭제 방법 소개

JavaScript_javascript 스킬의 객체 속성 삭제 방법 소개

WBOY
WBOY원래의
2016-05-16 16:23:121236검색

JavaScript에서는 삭제 연산자를 사용하여 객체의 속성을 삭제할 수 있습니다.


코드 복사 코드는 다음과 같습니다.

var t = {a:42, b:26};
console.log(t);//객체 {a=42, b=26}
삭제하세요;
console.log(t);//객체 {b=26}


이 속성 삭제 작업의 제한 사항은 삭제 연산자가 객체 자체의 모든 속성만 삭제할 수 있고 프로토타입 객체에서 상속된 속성은 삭제할 수 없다는 것입니다. 프로토타입 객체의 속성을 삭제하려면 프로토타입 객체를 명시적으로 얻은 다음 프로토타입 객체에서 작업을 수행해야 합니다.


코드 복사 코드는 다음과 같습니다.

var o = {x:1, y:2};
var a = Object.create(o);
a.z = 3;
console.log(a);//객체 {z=3, x=1, y=2}
delete a.x;//상속된 속성을 삭제할 수 없습니다
console.log(a);//객체 {z=3, x=1, y=2}
delete a.z;//자신의 속성을 삭제할 수 있습니다
console.log(a);//객체 {x=1, y=2}
a.__proto__.x; 삭제
console.log(a);//객체 {y=2}


프로토타입 객체의 속성이 삭제되면 프로토타입 객체에서 상속되는 모든 객체가 영향을 받습니다.

삭제 작업의 반환 값에 대해 JavaScript는 다음 규칙을 따릅니다.

1. 삭제 작업이 성공하면 true를 반환합니다.
2. 삭제 작업이 효과가 없는 경우(예: 삭제할 속성이 존재하지 않는 경우)에도 true를 반환합니다.
3. 구성 가능한 속성이 false인 속성을 삭제하려는 경우 엄격 모드에서는 TypeError 오류가 보고되고 비엄격 모드에서는 false가 반환됩니다.
삭제 연산자가 전역 개체의 속성에 대해 작동하는 경우 비엄격 모드에서는 코드의 전역 개체를 생략할 수 있습니다.

코드 복사 코드는 다음과 같습니다.

this.c = 42;
delete c;//this를 삭제하려면 같음.c;

엄격 모드에서는 위의 작성 방법으로 인해 SyntaxError가 발생한다는 점에 유의해야 합니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.